我正在编写一个涉及多个活动的应用程序:每个活动都由更多碎片组成。在几乎每个片段中,我想设置一个不同的工具栏 ...我应该在哪里这样做?我过去常常在onCreate()
或onCreateView()
内做所有事情,但现在我问自己:将它放在onStart()
中可能更正确吗?
我知道活动和片段生命周期是如何工作的...但我找不到我的具体案例的答案。
这是我在其中一个片段中使用的代码:
// Toolbar setup
setHasOptionsMenu(true);
AppCompatActivity activity = (AppCompatActivity) getActivity();
ActionBar actionBar = activity.getSupportActionBar();
if (actionBar != null)
actionBar.setDisplayHomeAsUpEnabled(true);
Toolbar tb = (Toolbar) activity.findViewById(R.id.toolbar_main);
tb.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentManager mng = getFragmentManager();
mng.popBackStack();
}
});
if (activity.getSupportActionBar() != null)
activity.getSupportActionBar().setTitle(R.string.toolbar_title);
tb.setVisibility(View.VISIBLE);
以下是定义activity_main.xml
的{{1}}文件的一部分:
R.id.toolbar_main
答案 0 :(得分:1)
在您的活动中添加工具栏,并在您的片段中更改颜色,标题等。
答案 1 :(得分:0)
我建议将工具栏放在Activity类上。您可以根据需要创建自定义工具栏。在调用片段期间,您可以通过调用方法在您的活动或片段中进行更改(颜色,主题等)。
答案 2 :(得分:0)
在.onCreate()方法中执行此操作 - 请参阅Google的材料设计示例项目:https://github.com/chrisbanes/cheesesquare