【发布时间】:2020-10-21 08:23:03
【问题描述】:
什么是最好的清洁方式,例如:
列表 - 详细信息
列表:可能有 5 种不同的类型
细节:我只想做一个,但可能有点复杂,因为每个项目需要不同的EditText
例子:
ListItem1 需要姓名、姓氏、年龄等 DetailFragment 我应该只显示这些 EditText
ListItem2 需要 Url 等 DetailFragment 我应该只显示一个 EditText
ListItem3 需要 8 个字段,所以 DetailFragment 我应该显示 8 个 EditText
等等……
所以,我想有一个 DetailListItemXFragment 并且在每个 Fragment 上都有项目需要的东西,但是如果它增长我最终会得到 N DetailFragment,但是如果我只有一个 DetailFragment 的逻辑将是巨大的.
所以我想知道一个干净的拱门的建议,比如创建一个 FactoryDetailFragment 或使其可扩展的东西,有什么想法吗?
【问题讨论】:
-
mmm... 选项可以只创建一个具有不同自定义视图的片段并仅显示必要的...但可能更好地为不同的细节创建不同的片段,因为不同的视图模型或演示者这将是一团糟。所以在我看来,现在看起来是同一个屏幕,但它们之间是不同的。要决定导航,您的演示者/视图模型可以决定它。
-
列表可能会增加,所以每个项目可能会有不同的片段,对吧?
-
是的,每个项目都有不同的片段......我不知道所有的路线图,但如果某些屏幕发生变化,其他屏幕/演示者不会受到影响。如果它们之间有公共逻辑,请提取到另一个类中,例如 UseCases、扩展函数等
-
我必须像工厂一样进行创作吗?而不是 if itemclicked == 1 -> DetailFragment1 和多个 if else 我想避免这种情况
-
如果使用viewpager2组件,只使用片段列表
标签: java android kotlin navigation android-architecture-components