请向我解释一下...我的Activity
中有Navigation Drawer,它与Toolbar
(如ActionBar
)同步。 Activity 的 fragment 很少,在不同的 fragment 中我需要使用不同的 AppBar
模式(一个视差,另一个简单)。所以,我认为我应该在每个带有 AppBar 和内容的框架中设置 CoordinatorLayout
。
但是我如何替换新工具栏上的最后一个工具栏以保存与抽屉的同步?还是方法不对,我需要改成其他方法?
最佳答案
不确定我的方法是否好,但我尝试将此公共(public)方法添加到我的 Activity 中:
public void setToolbar(Toolbar toolbar) {
if(toolbar != null) {
setSupportActionBar(toolbar);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
} else {
drawer.setDrawerListener(null);
}
}
我在所有 fragment 中添加了这个:
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
((MainActivity)getActivity()).setToolbar(toolbar);
}
@Override
public void onDestroyView() {
((MainActivity)getActivity()).setToolbar(null);
super.onDestroyView();
}
它工作正常,但我不确定它是否会导致内存泄漏或任何其他性能问题。也许有人可以提供帮助?
关于android - fragment 和抽屉导航的不同工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35015182/