diff --git a/app/src/main/java/com/sw/platecabinet/fragment/SettingListFragment.kt b/app/src/main/java/com/sw/platecabinet/fragment/SettingListFragment.kt index 087eed2..5c61643 100644 --- a/app/src/main/java/com/sw/platecabinet/fragment/SettingListFragment.kt +++ b/app/src/main/java/com/sw/platecabinet/fragment/SettingListFragment.kt @@ -24,8 +24,10 @@ import com.sw.platecabinet.ext.formatNumber import com.sw.platecabinet.ext.maskName import com.sw.platecabinet.model.response.EquipmentUserInfo import com.sw.platecabinet.utils.ListArrangementUtil +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.drop import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import timber.log.Timber /** @@ -181,41 +183,50 @@ class SettingListFragment : fun updateAdapter(items: List) { val itemsPerPage = 2 * GlobalData.arrayVertical // 每行2个,每列11个,共22个 if (GlobalData.arrayCross > 2) { - // 多recyclerview - var pages = if (items.size > itemsPerPage) { - if (GlobalData.arrayMode == 0) { - val pageList = items.chunked(itemsPerPage) - pageList.mapIndexed { index, it -> - var itemList: MutableList = it.toMutableList() - if (index == pageList.size - 1) { - // 补全剩余item - itemList = (itemList + List(itemsPerPage - itemList.size) { - EquipmentUserInfo() - }) as MutableList + lifecycleScope.launch(Dispatchers.Default) { + // 多recyclerview + var pages = if (items.size > itemsPerPage) { + if (GlobalData.arrayMode == 0) { + val pageList = items.chunked(itemsPerPage) + pageList.mapIndexed { index, it -> + var itemList: MutableList = it.toMutableList() + if (index == pageList.size - 1) { + // 补全剩余item + itemList = (itemList + List(itemsPerPage - itemList.size) { + EquipmentUserInfo() + }) as MutableList + } + ListArrangementUtil.convertToColumnFirst( + itemList, + GlobalData.arrayVertical + ) } - ListArrangementUtil.convertToColumnFirst(itemList, GlobalData.arrayVertical) + } else { + val newItems = + ListArrangementUtil.horizontalSortPageItem(items, GlobalData.arrayCross) + newItems.chunked(itemsPerPage) } } else { - val newItems = - ListArrangementUtil.horizontalSortPageItem(items, GlobalData.arrayCross) - newItems.chunked(itemsPerPage) + listOf( + items + ) + } + withContext(Dispatchers.Main) { + pageAdapter?.updatePages(pages) } - } else { - listOf( - items - ) } - pageAdapter?.updatePages(pages) } else { // 单 recyclerview - var pages = items - if (GlobalData.arrayMode == 0) { - pages = ListArrangementUtil.verticalSortItem(pages) + lifecycleScope.launch(Dispatchers.Default) { + var pages = items + if (GlobalData.arrayMode == 0) { + pages = ListArrangementUtil.verticalSortItem(pages) + } + withContext(Dispatchers.Main) { + itemAdapter?.updateData(pages) + } } - itemAdapter?.updateData(pages) } binding.mainRecyclerView.scrollToPosition(0) } - - } \ No newline at end of file