From 51d358151369ab8d956de09d07bb2ba0ce1fec0e Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Mon, 19 Jan 2026 17:06:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E6=97=A5=E5=BF=97=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vididin/main/fragments/HomeFragment.kt | 16 ------------- .../home/HomeFragmentStateAdapter.kt | 23 +++++++++++++++++++ .../views/adapter/BaseFragmentStateAdapter.kt | 3 ++- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt index 6c41b06..df9712e 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/HomeFragment.kt @@ -270,23 +270,7 @@ class HomeFragment : AppViewsFragment(), OnSwit } override fun ViewBinding.onUiStateCollect(uiState: UiState) { - showCurListInfo("------- before ---------") mViewPagerAdapter.submitList(uiState.playLists?.toList()) - lifecycleScope.launch { - showCurListInfo("------- after ---------") - } - } - - private fun showCurListInfo(tag: String) { - if (BuildConfig.DEBUG) { - val allList = mViewPagerAdapter.getCurrentList() - var allInfos = tag + " Total= ${allList.size}\n" - allList.forEach { - allInfos += (it.id + " / ") - } - - Log.e("hahah", allInfos) - } } override fun onResume() { diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/home/HomeFragmentStateAdapter.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/home/HomeFragmentStateAdapter.kt index 1e60acd..13a06d0 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/home/HomeFragmentStateAdapter.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/home/HomeFragmentStateAdapter.kt @@ -1,15 +1,38 @@ package com.gamedog.vididin.main.fragments.home +import android.util.Log import androidx.fragment.app.Fragment import com.ama.core.architecture.appBase.adapter.AppFragmentStateAdapter import com.gamedog.vididin.beans.YoutubeVideo import com.gamedog.vididin.main.fragments.home.fragment.HomeItemFragment +import com.remax.notification.BuildConfig class HomeFragmentStateAdapter(fragment: Fragment) : AppFragmentStateAdapter(fragment, true) { + + init { + mDiffer.addListListener{ previousList, currentList -> + showCurListInfo(true, previousList) + showCurListInfo(false, previousList) + } + } + + + private fun showCurListInfo(isBefore: Boolean, allList: List) { + if (BuildConfig.DEBUG) { + val tagStr = if (isBefore) "------- before ---------" else "------- after ---------" + var allInfos = tagStr + " Total= ${allList.size}\n" + allList.forEach { + allInfos += (it.id + " / ") + } + + Log.e("hahah", allInfos) + } + } + override fun createFragment(position: Int, item: YoutubeVideo): Fragment { return HomeItemFragment.newInstance(item.getItemId(), item) } diff --git a/core/architecture/src/main/java/com/ama/core/architecture/base/views/adapter/BaseFragmentStateAdapter.kt b/core/architecture/src/main/java/com/ama/core/architecture/base/views/adapter/BaseFragmentStateAdapter.kt index 27aa36d..adf7a42 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/base/views/adapter/BaseFragmentStateAdapter.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/base/views/adapter/BaseFragmentStateAdapter.kt @@ -18,7 +18,7 @@ abstract class BaseFragmentStateAdapter( lifecycle: Lifecycle, private val isFragmentLazyInit: Boolean, ) : FragmentStateAdapter(fragmentManager, lifecycle) { - private var mDiffer: AsyncListDiffer = AsyncListDiffer( + protected var mDiffer: AsyncListDiffer = AsyncListDiffer( AdapterListUpdateCallback(this), AsyncDifferConfig.Builder(BaseDiffItemCallback()).build() ) @@ -32,6 +32,7 @@ abstract class BaseFragmentStateAdapter( fragment: Fragment, isFragmentLazyInit: Boolean, ) : this(fragment.childFragmentManager, fragment.lifecycle, isFragmentLazyInit) + override fun getItemCount(): Int { return mDiffer.currentList.size }