新增appendList

This commit is contained in:
renhaoting 2025-11-19 10:36:36 +08:00
parent 4de5c22139
commit 38682f7815
4 changed files with 14 additions and 2 deletions

View File

@ -51,6 +51,7 @@ class HomeFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnSwit
override fun ViewBinding.initViews() {
viewPager2.setPageTransformer { _, _ -> }
viewPager2.offscreenPageLimit = 1
viewPager2.adapter = mViewPagerAdapter
}
override fun ViewBinding.initListeners() {
@ -86,7 +87,8 @@ class HomeFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnSwit
}
override fun ViewBinding.onUiStateCollect(uiState: UiState) {
viewPager2.setDataOrAdapter(uiState.playLists, 1) { mViewPagerAdapter }
mViewPagerAdapter.appendList(uiState.playLists)
//viewPager2.setDataOrAdapter(uiState.playLists, 1) { mViewPagerAdapter }
}
override fun onResume() {

View File

@ -55,6 +55,15 @@ abstract class BaseFragmentStateAdapter<T : BaseFragmentStateDiffItem>(
mDiffer.submitList(list)
}
fun appendList(appendList: List<T>?) {
val newList = mutableListOf<T>()
newList.addAll(getCurrentList())
appendList?.let {
newList.addAll(appendList)
}
mDiffer.submitList(newList)
}
fun getFragmentByIndex(position: Int) =
if (position in 0..<itemCount) fragmentManager.findFragmentByTag("f" + getItemId(position)) else null

View File

@ -2,8 +2,8 @@ package com.ama.core.architecture.util
import androidx.viewpager2.widget.ViewPager2
import com.ama.core.architecture.base.views.adapter.BaseFragmentStateAdapter
import com.ama.core.model.BaseFragmentStateDiffItem
import com.ama.core.common.util.asUnsafe
import com.ama.core.model.BaseFragmentStateDiffItem
import kotlin.collections.isNullOrEmpty

View File

@ -1,5 +1,6 @@
package com.ama.core.model
import com.ama.core.model.BaseDiffItem
interface BaseFragmentStateDiffItem : BaseDiffItem {
fun getItemId(): Long