android-fragments Recycler View不会在第一次执行严修时呈现片段,但会在第二次执行时呈现

mm9b1k5b  于 2022-11-13  发布在  Android
关注(0)|答案(2)|浏览(95)

问题的标题可能看起来有点混乱,但我正在做一个小项目。为了分离不同模块的逻辑,我们决定使用片段,但我们需要在回收器视图项中加载一个片段。
所以,基本上,我们在一个回收器视图itemview中加载一个片段。要显示的数据完全是后端驱动的。所以,只有当数据可用时,卡才会加载。所以,这就是场景。
实际情况是,我们正在尝试加载片段应用程序,但对于第一次使用的用户,卡片不会显示,即使所有必需的方法和API调用都成功,并且所有视图项都已加载。我检查了视图的可见性,它显示可见,只是,它不会在屏幕上加载。但在那之后,如果我们在从最近使用的菜单中删除应用程序后再次打开应用程序,那么该卡会加载。
有人知道这件事吗?

x3naxklr

x3naxklr1#

您不能将片段放入resyclerView,因为它可能导致内存泄漏。片段的生命周期比视图长,并且无法正确重新配置。
我可以推荐的解决方案-在你的资源回收器视图中构建你的片段(逐个视图)。
我使用https://github.com/sockeqwe/AdapterDelegates库来实现此目的。
1.从API获取数据
1.将其转换为具有通用接口的模型
1.将这些模型放到一个列表中

private fun adAdvertising(page: Pages<UIContent>) = page.apply {
         addTitleUI()
         addAdCardUI()
         addAdBannerUI()
     }

模型罐看起来像那样

data class TitleUI(
    val leagueName: String,
    val eventsCount: Int,
) : UIContent

1.将其添加到具有不同视图持有人的适配器
通过这种方式,你可以创建不同类型的复杂性片段,这将是正确的
您可以阅读的资源:
https://medium.com/@seidalins/delegate-adapters-building-heterogeneous-recyclerviewadapter-877cb7d3c6c0

hi3rlvi2

hi3rlvi22#

坏主意,创建回收程序视图是为了与视图一起使用,在这种情况下,您将遇到内存方面的大问题,请为项目创建自定义视图

相关问题