使用活动的工具栏从片段导航
问题描述:
在我的应用程序中,MainActivity使用导航抽屉来托管多个片段。 MainActivity提供工具栏,片段内容显示在框架布局的工具栏下。使用活动的工具栏从片段导航
在MainActivity中,我开始我的第一个片段并初始化我的工具栏,如下所示。
fragmentManager.beginTransaction().replace(R.id.content_frame, new FirstFragment()).commit();
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("Fragment 1");
我的一个片段需要一个子片段。我想向该子片段添加一个后退按钮,并在MainActivity中重写onBackPressed()。
我的工具栏目前只显示3行汉堡包,当它按下时打开导航抽屉并显示我的片段列表。
我不确定如何在我的子片段中显示后退箭头而不是汉堡包。然后我需要捕获onBackPressed()事件并处理它。
我可能会这样做不正确,可能应该使用活动而不是片段,但如果我这样做,我将无法为片段slide_in/slide_out转换设置动画效果。工具栏会随着框架布局一起滑动,我不希望那样。
我想片段内容显示一个过渡,而工具栏仍然在位。就像您在View Pager中所期望的一样。
我将不胜感激任何建议。
谢谢!
答
你可以改变你的“家图标”调用这些行:
getSupportActionBar().setHomeAsUpIndicator(R.drawable.your_arrow_icon);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
对于处理“家庭点击”你必须重写onOptionsItemSelected和处理为家乡菜单项的点击监听器(android.R.id 。家)。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
祝你好运!