我希望有一个带菜单的标题,并且只能更改UI的剩余部分(即标题和菜单永远不会重新加载,当用户在菜单中选择一个选项时会重新加载内容)。
*******************************************
* header *
*******************************************
* option1 | option2 | option3 | option4...*
*******************************************
* *
* content to be updated *
* according to the option *
* selected in the menu *
* *
* *
*******************************************
我打算使用ViewFlipper并为内容添加/删除布局,但我已经读过,对于复杂内容,使用Fragment可能更好。我见过的唯一例子是使用TabHost和TabWidget,但我有自己的菜单,不使用TabWidget。
我可以为每个菜单的选项使用带有一个片段的ViewFlipper吗?
任何帮助/建议/指针欢迎......
由于
答案 0 :(得分:0)
您实际上不需要ViewFlipper来执行此操作。
关于Fragments的事情是你可以通过简单地调用替换它的方法来替换现有的Fragment。这可以通过使用(线性,相对,任何你喜欢的,但就我注意到的无关紧要)布局并用片段完全替换它来工作。
假设您将布局命名为mainContent。它是一个嵌入在主布局文件中的LinearLayout,其上面有菜单。然后,您可以使用以下方法向其中添加片段(例如,OptionOne):
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.mainContent, new OptionOne());
ft.commit();
如果您想用OptionTwo的内容替换它,您只需使用以下内容替换它:
FragmentTransaction ft = getActivity().getSupportFragmentManager()
.beginTransaction();
ft.replace(R.id.mainView, new Biography(appID, formID, title))
.addToBackStack(null);
ft.commit();
注意:我为此使用了Fragments的兼容版本,因此您的代码可能会有所不同。
此外,为了能够使用此方法,您还需要将您想要使用的所有当前活动更改为Fragments
。