问题的标题可能看起来有点混乱,但我正在做一个小项目。为了分离不同模块的逻辑,我们决定使用片段,但我们需要在回收器视图项中加载一个片段。
所以,基本上,我们在一个回收器视图itemview中加载一个片段。要显示的数据完全是后端驱动的。所以,只有当数据可用时,卡才会加载。所以,这就是场景。
实际情况是,我们正在尝试加载片段应用程序,但对于第一次使用的用户,卡片不会显示,即使所有必需的方法和API调用都成功,并且所有视图项都已加载。我检查了视图的可见性,它显示可见,只是,它不会在屏幕上加载。但在那之后,如果我们在从最近使用的菜单中删除应用程序后再次打开应用程序,那么该卡会加载。
有人知道这件事吗?
2条答案
按热度按时间x3naxklr1#
您不能将片段放入resyclerView,因为它可能导致内存泄漏。片段的生命周期比视图长,并且无法正确重新配置。
我可以推荐的解决方案-在你的资源回收器视图中构建你的片段(逐个视图)。
我使用https://github.com/sockeqwe/AdapterDelegates库来实现此目的。
1.从API获取数据
1.将其转换为具有通用接口的模型
1.将这些模型放到一个列表中
模型罐看起来像那样
1.将其添加到具有不同视图持有人的适配器
通过这种方式,你可以创建不同类型的复杂性片段,这将是正确的
您可以阅读的资源:
https://medium.com/@seidalins/delegate-adapters-building-heterogeneous-recyclerviewadapter-877cb7d3c6c0
hi3rlvi22#
坏主意,创建回收程序视图是为了与视图一起使用,在这种情况下,您将遇到内存方面的大问题,请为项目创建自定义视图