我正在研究类似“家庭供稿”的功能,其中有一个主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
}
答案 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内部显示的片段列表。