我正在研究片段和“多设备支持”。根据设备类型、方向和尺寸,可以使用片段定义多个布局并重用编写的代码。在开发应用程序的过程中,我写下了我想要的平板设备 UI,如下面的截图所示:
该活动包含两个片段并显示 TAB 菜单导航。每个 TAB 菜单导航都包含不同的菜单条目(列表视图)。单击片段 1 上的菜单项时,我需要刷新片段编号 2。片段 2 由演示文稿和下面的列表视图或其他演示文稿组成。每个菜单项都可以有不同的布局:
- 1-演示文稿,图像,另一个演示文稿
- 2-无演示,列表视图
- 3-演示文稿,列表视图
- 4等
研究 google-sdk 提供的示例(示例),片段 2 始终具有相同的布局。如何根据单击的菜单项告诉片段 2 加载不同的布局?
我的回答是:我需要为每个不同的布局创建一个片段类。当用户点击片段 1 的某个项目时,片段管理器应该替换并提交正确的片段。这个答案正确吗?
所有片段逻辑都将在我的活动中,根据所选项目(位置和类别)替换正确的片段;简单的例子:
@Override
public void onItemSelected(int category, int position) {
if (position==0){
final FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content_frag, new FirstActionFragment(), "FirstMenuClicked");
ft.commit();
}
else {
final FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content_frag, new SecondActionFragment(), "secondMenuClicked");
ft.commit();
}
}
我的布局想法可以改进吗?我应该改变我的设计以正确实现碎片吗?