Android 如何在各个片段打开时设置菜单项的可见性?
事实上,我使用的是导航抽屉,但在打开相应片段时,背面按钮菜单项不可见。如何设置菜单项的可见性?有人能帮我吗Android 如何在各个片段打开时设置菜单项的可见性?,android,android-fragments,navigation-drawer,Android,Android Fragments,Navigation Drawer,事实上,我使用的是导航抽屉,但在打开相应片段时,背面按钮菜单项不可见。如何设置菜单项的可见性?有人能帮我吗 @Override public boolean onNavigationItemSelected(MenuItem item) { // Handle navigation view item clicks here. Fragment fragment = null; int id = item.getItemId
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
Fragment fragment = null;
int id = item.getItemId();
navigationView.getMenu().getItem(0).setActionView(R.layout.menu_home);
navigationView.getMenu().getItem(1).setActionView(R.layout.menu_profile);
navigationView.getMenu().getItem(2).setActionView(R.layout.menu_history);
navigationView.getMenu().getItem(3).setActionView(R.layout.menu_contact_igrab);
navigationView.getMenu().getItem(4).setActionView(R.layout.menu_help);
navigationView.getMenu().getItem(5).setActionView(R.layout.menu_logout);
if (id == R.id.home) {
item.setActionView(R.layout.menu_home_blue);
changeFragments(new CustomerHomeFragment());
} else if (id == R.id.my_profile) {
item.setActionView(R.layout.menu_my_profile_blue);
changeFragments(new CustomerProfileFragment()); } DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
您可以使用
setUserVisibleHint
方法。覆盖该方法并检查isVisibleToUser
参数是否为true
和getActivity()
是否为null使用setChecked()
方法设置选择导航项。
在活动中创建方法:
public void setNavigation(int id) {
navigationView.getMenu().getItem(id).setChecked(true);
}
现在在片段中调用此方法以选择导航项:
((YourActivity)mContext).setNavigation(int position);
希望它能帮助你 所有项目的第一组可视性false
类似:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_dashboard"
android:icon="@drawable/ic_dashboard"
android:title="@string/nav_dashboard"
android:visible="false" />
</group>
</menu>
但是由于最初所有菜单项的可见性都消失了,那么我如何选择菜单项对不起,我的英语很抱歉,我希望你能理解我想说的…你想显示的菜单项你可以根据任何条件将其设置为Visibly true我想在打开相应的片段时选择特定的菜单项。但是这需要前面的步骤所选值。是否调用navigationItemSelected方法中的所有片段?对吧?对。。但当我从配置文件片段返回到主片段时,配置文件菜单项被选中,而不是主菜单项。是的,我在配置文件片段调用((YourActivity)mContext)中告诉过你。设置导航(int位置)代码>方法。现在记住位置将是你的家碎片。我在我的项目中也做了同样的事情。工作正常。你能告诉我如何实现这个方法吗?发布你的代码,说明你是如何实现的,以使菜单项可见。你能分享任何可以更详细地描述你的问题的快照吗?
NavigationView navigationView = (NavigationView)findViewById(R.id.nav_view);
Menu menu =navigationView.getMenu();
MenuItem nav_dashboard = menu.findItem(R.id.nav_dashboard);
nav_dashboard.setVisible(true);