如何在片段中使用相同的基本布局和不同的内容?

时间:2017-02-14 18:04:34

标签: android android-fragments android-viewpager

我有一个包含3个不同页面的ViewPager,它们都有自己的片段XML文件。这些片段对于所有3个页面基本相同,它们仅在内容上有所不同:第1页显示一个RadioGroup,第2页显示一个复选框,第3页只显示文本。

在每个页面上,顶部都有标题和说明,底部有一个按钮。内容显示在说明和按钮之间。

目前我已经复制了片段文件,只是更改了内容部分。但是这个解决方案似乎并不是最好的,因为我必须在布局更改时更改3个文件。

建议的方法是什么?扩展LinearLayout类?将所有元素放在一个文件中并动态显示/隐藏我需要的元素?还有更好的建议吗?

1 个答案:

答案 0 :(得分:0)

一个解决方案是您可以拥有页面XML文件,并且在您的内容不同的区域中,您可以在该空间中放置一个ID为layoutPlaceholder的空布局标记,这是您以编程方式插入RadioGroup的位置代码中的Checkbox和Text XML布局。

XML结构可能如下所示:

- Page.xml
   - Page_RadioGroup.xml
   - Page_checkbox.xml
   - Page_text.xml

This question explains how to inflate those sub-page xml files inside Page.xml

如果您想以编程方式创建RadioGroup,Checkbox和Text内容,而不是拥有3个额外的xml文件,您也可以这样做,但我个人希望将所有元素布局保留为XML。