实际上我使用的是导航抽屉,但在打开相应的片段时,后面的按钮菜单项是不可见的。如何设置菜单项的可见性?有人可以帮助我吗?
@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;
}
答案 0 :(得分:0)
您可以使用setUserVisibleHint
方法。覆盖该方法并检查isVisibleToUser
参数是true
且getActivity()
不是null
。
答案 1 :(得分:0)
使用setChecked()
方法设置选择导航项。
在你的活动中制作方法:
public void setNavigation(int id) {
navigationView.getMenu().getItem(id).setChecked(true);
}
现在在片段中调用此方法以选择导航项:
((YourActivity)mContext).setNavigation(int position);
希望它能帮到你!!
答案 2 :(得分:0)
首先设置所有visiblity
的{{1}} false :
item
现在在<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>
,你可以像这样显示和隐藏Activity
。
item