[英]Android: Change activity title when navigating fragments; Bring back same titles when back button clicked
I Have a fragment called categories_collection the application initially launches with this fragment and the activity title is the application title. 我有一个名为Categories_collection的片段,应用程序最初使用该片段启动,活动标题是应用程序标题。
Category 1 第1类
Category 2 2类
- Category 2.1 -2.1类
- Category 2.2 -2.2类
Category 3 第3类
what i do is when a user clicks on a category that has children i re-call the same categories_collection fragment with an extra field called parent to load the categories that are the children of the clicked category. 我做的是,当用户点击该有小孩我一个类别重新调用一个名为母公司的额外字段相同categories_collection片段加载是点击类别的儿童的类别。 this is all done and working well. 这一切都已经完成并且运行良好。
What i need is the following 我需要的是以下
I hope this explains what i need. 我希望这可以解释我的需求。
Thanks. 谢谢。
Make a method and call it on backpressed : 制作方法并在backpressed上调用它:
void onBack() {
//Find all your fragments with id
Categroy_Child_Fragment fr = (Categroy_Child_Fragment) fragmentManager
.findFragmentByTag("list_items");
Final_Categories_Fragment fr1 = (Final_Categories_Fragment) fragmentManager
.findFragmentByTag("last");
Grid_View_Fragment_For_All fr2 = (Grid_View_Fragment_For_All) fragmentManager
.findFragmentByTag("grid_view");
//Then check if they are null or not and according to that remove them and settitle to actionbar
if (fr2 != null) {
fragmentManager
.beginTransaction()
.setCustomAnimations(R.anim.out_to_left, R.anim.out_to_left)
.remove(fr2).commit();
actionBar.setTitle("title");
} else if (fr1 != null) {
fragmentManager
.beginTransaction()
.setCustomAnimations(R.anim.bottom_down, R.anim.bottom_down)
.remove(fr1).commit();
actionBar.setTitle("title");
} else if (fr != null) {
fragmentManager.beginTransaction()
.setCustomAnimations(R.anim.right_out, R.anim.right_out)
.remove(fr).commit();
actionBar.setTitle(R.string.all_cat);
} else {
super.onBackPressed();
}
}
In every fragment that should change its activities' title I put something like this in the onResume() method of the fragment. 在每个应该更改其活动标题的片段中,我都会在片段的onResume()方法中放置类似的内容。
@Override
public void onResume() {
super.onResume();
((ParentActivity) getActivity()).setTitle("FragmentTitle");
}
and then you have to create setTitle(String title) method in your activity that should change its title. 然后必须在您的活动中创建应更改其标题的setTitle(String title)方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.