diff --git a/app/src/main/java/com/gh/gamecenter/home/custom/CustomPageViewModel.kt b/app/src/main/java/com/gh/gamecenter/home/custom/CustomPageViewModel.kt index 7e0014d531..89fae66862 100644 --- a/app/src/main/java/com/gh/gamecenter/home/custom/CustomPageViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/home/custom/CustomPageViewModel.kt @@ -540,7 +540,7 @@ class CustomPageViewModel(application: Application) : AndroidViewModel(applicati targetItem is CustomSplitSubjectItem -> {// 添加后续的数据 val subject = targetItem.data - subject.data = gameList.toMutableList() + subject.data = ((subject.data ?: emptyList()) + gameList).toMutableList() subject.isWechatColumnCPM = true val cpmSubjectItemList = repository.convertColumnDetailSubjectItems( @@ -551,8 +551,12 @@ class CustomPageViewModel(application: Application) : AndroidViewModel(applicati ) if (cpmSubjectItemList.isEmpty()) return val newData = oldData.toMutableList() - val position = newData.indexOfLast { it.componentPosition == componentPosition } - newData.addAll(position + 1, cpmSubjectItemList) + + val position = newData.indexOfFirst { it.componentPosition == componentPosition } + // 移除旧数据 + newData.removeAll { it.componentPosition == componentPosition } + // 在原来的位置上插入新数据 + newData.addAll(position, cpmSubjectItemList) newData.forEachIndexed { pos, customPageItem -> customPageItem.position = pos }