我有一个包含3个不同页面的ViewPager,它们都有自己的片段XML文件。这些片段对于所有3个页面基本相同,它们仅在内容上有所不同:第1页显示一个RadioGroup,第2页显示一个复选框,第3页只显示文本。
在每个页面上,顶部都有标题和说明,底部有一个按钮。内容显示在说明和按钮之间。
目前我已经复制了片段文件,只是更改了内容部分。但是这个解决方案似乎并不是最好的,因为我必须在布局更改时更改3个文件。
建议的方法是什么?扩展LinearLayout类?将所有元素放在一个文件中并动态显示/隐藏我需要的元素?还有更好的建议吗?
答案 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。