我对新应用程序的工作,我现在用的Activity和Fragment.他们之间有什么主要区别?
我在Android文档中找到了我想要的好答案.
文档描述
活动和片段之间生命周期中最显着的差异是如何将其存储在其各自的后台堆栈中.默认情况下,活动被置于由系统停止时由系统管理的活动的后堆栈中(以便用户可以使用"后退"按钮导航回到它,如"任务"和"后台堆栈"中所述).但是,只有当您在删除片段的事务期间通过调用addToBackStack()显式请求保存实例时,才会将片段放入由主机活动管理的后向堆栈中.
主机是否Activity保留Fragment与其关联的不同后备堆栈以及单个应用程序保留多个堆栈的任何方案.??
我有一个片段,我尝试更改操作栏的标题.这一直有效,直到我添加setHasOptionsMenu(true)到片段中.我怎么解决这个问题?因为我需要optionsmenu片段中的.
在片段中
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
((MainActivity)getActivity()).setActionBarTitle(getString(R.string.title_view_tree));
setHasOptionsMenu(true);
return inflater.inflate(R.layout.fragment_view_tree, container, false);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_view_tree,menu);
super.onCreateOptionsMenu(menu,inflater);
}
Run Code Online (Sandbox Code Playgroud)
在MainActivity中:
public void setActionBarTitle(String title) {
getSupportActionBar().setTitle(title);
}
Run Code Online (Sandbox Code Playgroud)
当我setHasOptionsMenu(true)通过使用//然后actionbar正确使用更改的标题禁用.
android android-titlebar android-fragments android-actionbar