如何将所有子片段类存储到父类的实例

时间:2018-09-27 14:42:27

标签: java android android-fragments architecture

我正在研究类似“家庭供稿”的功能,其中有一个主Fragment,其布局中添加了其他几个片段,从而构成了内容页面。我希望主片段类能够实例化从某个父片段类继承的所有片段类。这样,代码将更加动态,而不是向我的xml文件添加一堆<fragment>标签。

我有点想组成一个像样的架构。您将如何进行呢?

更新: 这基本上是我要做的,但是不知道如何做:

public class FeedFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
        View parentView = inflater.inflate(R.layout.fragment_home, container, false);

        // Get fragments and dynamically add them to
        // the FeedFragment's layout
        getEntryFragmentsList();
        // ...

        return parentView;
    }
}

public abstract class FeedEntryFragment extends Fragment {
   // Somehow add fragment to list of entry fragments
}

public class TestFragment extends FeedEntryFragment {
    // Already added to list of entry fragments
}

2 个答案:

答案 0 :(得分:2)

我认为不可能通过继承来减少xml的数量。我认为您应该尝试拆分xml配置,并使用一些<merge><include>从各个部分构建完整的XML配置。

如果您将更详细地描述您的问题,也许我可以提供更多帮助。

答案 1 :(得分:1)

您应该使用FrameLayout通过使用FragmentTransaction动态添加片段。

您还可以使用带有标签或底部标签的ViewPager来显示多个片段。请从我的sample库中查看Dynamic Support,以获取完整的代码。


摘要片段
DynamicFragment-动态支持库中的抽象基础片段。 DynamicViewPagerFragment-抽象片段,它扩展了DynamicFragment以实现ViewPager功能。

实施
HomeFragment-示例片段扩展了DynamicFragment以实现主屏幕。 SettingsFragment-示例片段扩展了DynamicViewPagerFragment以使用视图分页器内的多个片段来实现设置功能。<​​/ p>

教程实施
这更适合您的需求。 TutorialActivity返回要在ViewPager内部显示的片段列表。

DynamicSimpleTutorial根据提供的参数生成DynamicTutorialFragment