Java 操作栏、导航抽屉和碎片后台管理
我正在我的应用程序中实现以下教程: 我的目标是实现以下行为:Java 操作栏、导航抽屉和碎片后台管理,java,android,android-fragments,fragment,Java,Android,Android Fragments,Fragment,我正在我的应用程序中实现以下教程: 我的目标是实现以下行为: 使用一个活动 2个片段:始终附加片段A。单击按钮时会附加FragmentB 当FragmentB可见时,操作栏home按钮是一个后退箭头,用于从后退中删除FragmentB 当片段B不可见时,操作栏按钮home按钮显示抽屉布局 如何实现home按钮的转换 谢谢ActionBar类中有一些方法可以帮助您: 以下通话将主页按钮图标设置为“后退”图标 因为MenuItem的操作是由onOptions ItemSelected()方法定义
- 使用一个活动
- 2个片段:始终附加片段A。单击按钮时会附加FragmentB
- 当FragmentB可见时,操作栏home按钮是一个后退箭头,用于从后退中删除FragmentB
- 当片段B不可见时,操作栏按钮home按钮显示抽屉布局
谢谢ActionBar类中有一些方法可以帮助您: 以下通话将主页按钮图标设置为“后退”图标 因为MenuItem的操作是由onOptions ItemSelected()方法定义的,所以您也必须重写它,并检查是否单击home按钮。实际上,导航抽屉将再次绘制,因此您需要从该方法返回true,以防止抽屉再次绘制
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getId() == android.R.id.home) {
// do what you want here
return true; // prevent the drawer to draw again;
}
return super.onOptionsItemSelected(item);
}
要将“主页”按钮返回其默认“行为”,请使用以下调用:
getActionBar().setDisplayShowHomeEnabled(true);
最后一步是检查当前片段是FragmentA(它将激活抽屉绘制导航片段)还是FragmentB(它不会)。您可能需要添加一个全局布尔变量来执行这些操作,并检查导航项的位置
我在这里提供了一个示例,请查看:
希望这有帮助
getActionBar().setDisplayShowHomeEnabled(true);