【问题标题】:DetailFragment with different EditText according with the args根据 args 具有不同 EditText 的 DetailFragment
【发布时间】: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 的逻辑将是巨大的.

所以我想知道一个干净的拱门的建议,比如创建一个 FactoryDe​​tailFragment 或使其可扩展的东西,有什么想法吗?

【问题讨论】:

  • mmm... 选项可以只创建一个具有不同自定义视图的片段并仅显示必要的...但可能更好地为不同的细节创建不同的片段,因为不同的视图模型或演示者这将是一团糟。所以在我看来,现在看起来是同一个屏幕,但它们之间是不同的。要决定导航,您的演示者/视图模型可以决定它。
  • 列表可能会增加,所以每个项目可能会有不同的片段,对吧?
  • 是的,每个项目都有不同的片段......我不知道所有的路线图,但如果某些屏幕发生变化,其他屏幕/演示者不会受到影响。如果它们之间有公共逻辑,请提取到另一个类中,例如 UseCases、扩展函数等
  • 我必须像工厂一样进行创作吗?而不是 if itemclicked == 1 -> DetailFragment1 和多个 if else 我想避免这种情况
  • 如果使用viewpager2组件,只使用片段列表

标签: java android kotlin navigation android-architecture-components


【解决方案1】:

如果您需要不同数量的字段,您可以为此在 DetailFragment 中使用 RecyclerView。每个 Item 都由一个 TextView 描述和一个 EditText 字段组成。您可以随时向 RecyclerView 添加不同数量的项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 2014-04-03
    • 2015-03-10
    • 2023-03-25
    • 1970-01-01
    • 2018-02-09
    • 2017-07-08
    相关资源
    最近更新 更多