排序放入协程

This commit is contained in:
zxj
2025-07-28 18:25:23 +08:00
parent 6f18245c4f
commit d20ee771b0
@@ -24,8 +24,10 @@ import com.sw.platecabinet.ext.formatNumber
import com.sw.platecabinet.ext.maskName import com.sw.platecabinet.ext.maskName
import com.sw.platecabinet.model.response.EquipmentUserInfo import com.sw.platecabinet.model.response.EquipmentUserInfo
import com.sw.platecabinet.utils.ListArrangementUtil import com.sw.platecabinet.utils.ListArrangementUtil
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.drop import kotlinx.coroutines.flow.drop
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import timber.log.Timber import timber.log.Timber
/** /**
@@ -181,41 +183,50 @@ class SettingListFragment :
fun updateAdapter(items: List<EquipmentUserInfo>) { fun updateAdapter(items: List<EquipmentUserInfo>) {
val itemsPerPage = 2 * GlobalData.arrayVertical // 每行2个,每列11个,共22个 val itemsPerPage = 2 * GlobalData.arrayVertical // 每行2个,每列11个,共22个
if (GlobalData.arrayCross > 2) { if (GlobalData.arrayCross > 2) {
// 多recyclerview lifecycleScope.launch(Dispatchers.Default) {
var pages = if (items.size > itemsPerPage) { // 多recyclerview
if (GlobalData.arrayMode == 0) { var pages = if (items.size > itemsPerPage) {
val pageList = items.chunked(itemsPerPage) if (GlobalData.arrayMode == 0) {
pageList.mapIndexed { index, it -> val pageList = items.chunked(itemsPerPage)
var itemList: MutableList<EquipmentUserInfo> = it.toMutableList() pageList.mapIndexed { index, it ->
if (index == pageList.size - 1) { var itemList: MutableList<EquipmentUserInfo> = it.toMutableList()
// 补全剩余item if (index == pageList.size - 1) {
itemList = (itemList + List(itemsPerPage - itemList.size) { // 补全剩余item
EquipmentUserInfo() itemList = (itemList + List(itemsPerPage - itemList.size) {
}) as MutableList<EquipmentUserInfo> EquipmentUserInfo()
}) as MutableList<EquipmentUserInfo>
}
ListArrangementUtil.convertToColumnFirst(
itemList,
GlobalData.arrayVertical
)
} }
ListArrangementUtil.convertToColumnFirst(itemList, GlobalData.arrayVertical) } else {
val newItems =
ListArrangementUtil.horizontalSortPageItem(items, GlobalData.arrayCross)
newItems.chunked(itemsPerPage)
} }
} else { } else {
val newItems = listOf(
ListArrangementUtil.horizontalSortPageItem(items, GlobalData.arrayCross) items
newItems.chunked(itemsPerPage) )
}
withContext(Dispatchers.Main) {
pageAdapter?.updatePages(pages)
} }
} else {
listOf(
items
)
} }
pageAdapter?.updatePages(pages)
} else { } else {
// 单 recyclerview // 单 recyclerview
var pages = items lifecycleScope.launch(Dispatchers.Default) {
if (GlobalData.arrayMode == 0) { var pages = items
pages = ListArrangementUtil.verticalSortItem(pages) if (GlobalData.arrayMode == 0) {
pages = ListArrangementUtil.verticalSortItem(pages)
}
withContext(Dispatchers.Main) {
itemAdapter?.updateData(pages)
}
} }
itemAdapter?.updateData(pages)
} }
binding.mainRecyclerView.scrollToPosition(0) binding.mainRecyclerView.scrollToPosition(0)
} }
} }