【发布时间】:2018-06-12 12:27:35
【问题描述】:
简介(以下问题):
根据我的应用程序需求,我需要创建 TabLayout 和扩展 FragmentStatePAgerAdapter 的 ViewPager。 Viewpager 由一种类型的片段列表组成,我们称之为 ListFragment。
每个Fragment 显示一个RecyclerView 列表。
现在进退两难了。我希望实现的是,每个ListFragment 都有一个ViewModel,其中包含ListFragment 的LiveData<ArrayList>,同时继续跟踪其自身的片段列表以进行任何更改(Fragment 列表可以是更改(删除/插入/设置))
这是应用程序的图片表示:
注意:ListFragment 和 Fragment List 可能会造成混淆。意思是拥有一个ArrayList<ListFragment>,其中每个ListFragment 都有一个ViewModel,其中包含一个LiveData<ArrayList<Object>>。
现在事情变得复杂了:
1)我如何为每个 ListFragment 创建一个 ViewModel,我在哪里存储这些 ViewModel?
2)在创建片段列表(具有不确定的大小)时,我在哪里存储列表,以及如何监听其中的变化(例如,删除片段)?
这些问题都是架构师的问题。我对如何实现ViewModel、FragmentStatePagerAdapter等有很清楚的了解,但是我很困惑,比如在哪里存储、创建等等。
目前还没有关于架构的假设。它可能是一些 MVVN 或 MVC。
【问题讨论】:
标签: android android-fragments android-viewpager viewmodel