排序放入协程
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user