【问题标题】:Navigation with abstract base fragment使用抽象基础片段导航
【发布时间】:2021-11-12 10:45:07
【问题描述】:

我有一个类似下面导航图的设置。中间的 3 个片段非常相似,都扩展了一个 BaseFragment 类。

我想做的是将BaseFragment抽象化,这样我的导航图就可以简化为下图。

这甚至可能吗?这将大大减少我的导航图的混乱,因为最终会有超过 20 个孩子。但是,我认为这种改进需要我实例化一个抽象类,这是不可能的。

【问题讨论】:

  • 您正在寻找参数,而不是抽象类
  • 我不太明白这是如何解决问题的。您是说使用第二张图片,但将BaseFragment 设为非抽象并仅传递一个参数以指示要使用哪个孩子?每个子片段使用相同的 xml 模板并在模板中插入略有不同的视图,因此我需要确保可以正确填充我的视图。
  • 听起来他们不需要一个共同的基地。
  • 他们绝对受益于共同的基础。它们都执行相同的功能,只是在实现上略有不同。如果我消除了公共基础,那么我的重复代码比唯一代码要多。
  • 听起来像是复合视图组的用例或某种常见的“控制器”,但听起来不像行为应该来自共同的父片段。

标签: android android-fragments android-navigation android-navigation-graph


【解决方案1】:

不,Fragment 不能是抽象的。

我决定的解决方案是创建一个帮助类来存储我想在 Fragment 中显示的数据。这个帮助类对于每个原始的ChildFragment 类都有一个子类。

我可以通过简单地读取存储在这个助手类中的数据来动态填充我的片段,从而允许我实现问题中的第二个图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多