PagingDataAdapter.refresh() 在片段导航后不工作

PagingDataAdapter.refresh() not working after fragment navigation

我在一个片段中使用 PagingDataAdapter 来显示用户 activity。 在片段 class 级别,

private var activityAdapter: ActivityFeedAdapter? = null

onCreate()我在使用前初始化,

activityAdapter = initAdapter()

也在onCreate(),

this.lifecycleScope.launchWhenResumed {
        viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
             viewModel.getActivityFeed().observe(viewLifecycleOwner) {
                 it?.let {
                     activityAdapter?.submitData(lifecycle, it)
                 }
             }
         }
     }

onStart() 之后,我在视图上设置了一个点击侦听器以从 UI 刷​​新 pagingdata 为,

binding?.refresh?.setOnClickListener {
            activityAdapter?.refresh()
        }

第一次加载时一切正常。但是在我导航到某个片段并返回到同一屏幕后,单击刷新仅处理单击事件但不刷新适配器。

顺便说一句,我已经在 onCreate() 中初始化了适配器,因为我需要适配器来维护跨屏幕转换的加载数据。谁帮帮我...

我遇到了错误...:))

onCreate() 中,我将 lifecycleOwner 的观察者设置为 viewLifecycleOwner

但是 viewLifecycleOwner 只在 onCreateView()onDestroyView() 期间有效。所以在导航到另一个片段并从那里返回后,新的观察者没有被设置。由于 lifecycleOwner 被销毁,旧的观察者被取消。所以我可以刷新 PagingDataAdapter.

中的更多数据

设置观察者时请重新考虑使用哪个lifecycleOwner。希望这可以帮助某人。 :)