尝试获取菜单项时导航视图菜单崩溃 - Java (Android)
Navigation View menu crashing when trying to get menu item - Java (Android)
我正在尝试使某个项目在导航抽屉项目的 Activity
主抽屉中不可见。但是,当我尝试访问菜单以获取项目并将其设置为不可见时,应用程序崩溃了。
这是我的代码:
NavigationView nav_draw = (NavigationView) findViewById(R.id.nav_draw);
Menu menu = nav_draw.getMenu().findItem(R.id.navigation_item_1).setVisible(false);
我不知道发生了什么。我正在尝试在扩展 PreferenceActivity
.
的 SettingsActivity
中执行此操作
这是 nav_header_main.xml
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="450dp"
android:layout_height="70dp"
android:background="@color/PaletteSecondary"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="80dp"
android:gravity="center"
android:textSize="20dp"
android:textColor="@color/colorWhite"
android:text="Social Slide"
android:textAppearance="@style/TextAppearance.AppCompat.Display1"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/imageView2"
android:layout_marginStart="11dp" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="60dp"
android:layout_height="40dp"
app:srcCompat="@drawable/logo_s_white"
android:layout_centerVertical="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
这里是 activity_main_drawer.xml
:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_inicio"
android:icon="@drawable/ic_home"
android:title="Inicio"
android:visible="true"/>
<item
android:id="@+id/nav_fb"
android:icon="@drawable/ic_fb"
android:title="Facebook" />
<item
android:id="@+id/nav_twitter"
android:icon="@drawable/ic_twitter"
android:title="Twitter" />
<item
android:id="@+id/nav_instagram"
android:icon="@drawable/ic_insta"
android:title="Instagram" />
<item
android:id="@+id/nav_tumblr"
android:icon="@drawable/ic_tumblr"
android:title="Tumblr" />
</group>
<item android:title="Extras">
<menu>
<item
android:id="@+id/nav_share"
android:icon="@drawable/ic_menu_share"
android:title="Comparte" />
<item
android:id="@+id/nav_mas"
android:icon="@drawable/ic_more_apps_black"
android:title="Descarga otras Apps" />
</menu>
</item>
</menu>
非常感谢您的帮助!
你需要在onCreate中添加这个方法:
hideNavigationItem();
private void hideNavigationItem() {
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_draw);
Menu nav_Menu = navigationView.getMenu();
nav_Menu.findItem(R.id.nav_inicio).setVisible(false);
}
我正在尝试使某个项目在导航抽屉项目的 Activity
主抽屉中不可见。但是,当我尝试访问菜单以获取项目并将其设置为不可见时,应用程序崩溃了。
这是我的代码:
NavigationView nav_draw = (NavigationView) findViewById(R.id.nav_draw);
Menu menu = nav_draw.getMenu().findItem(R.id.navigation_item_1).setVisible(false);
我不知道发生了什么。我正在尝试在扩展 PreferenceActivity
.
SettingsActivity
中执行此操作
这是 nav_header_main.xml
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="450dp"
android:layout_height="70dp"
android:background="@color/PaletteSecondary"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="80dp"
android:gravity="center"
android:textSize="20dp"
android:textColor="@color/colorWhite"
android:text="Social Slide"
android:textAppearance="@style/TextAppearance.AppCompat.Display1"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/imageView2"
android:layout_marginStart="11dp" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="60dp"
android:layout_height="40dp"
app:srcCompat="@drawable/logo_s_white"
android:layout_centerVertical="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
这里是 activity_main_drawer.xml
:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_inicio"
android:icon="@drawable/ic_home"
android:title="Inicio"
android:visible="true"/>
<item
android:id="@+id/nav_fb"
android:icon="@drawable/ic_fb"
android:title="Facebook" />
<item
android:id="@+id/nav_twitter"
android:icon="@drawable/ic_twitter"
android:title="Twitter" />
<item
android:id="@+id/nav_instagram"
android:icon="@drawable/ic_insta"
android:title="Instagram" />
<item
android:id="@+id/nav_tumblr"
android:icon="@drawable/ic_tumblr"
android:title="Tumblr" />
</group>
<item android:title="Extras">
<menu>
<item
android:id="@+id/nav_share"
android:icon="@drawable/ic_menu_share"
android:title="Comparte" />
<item
android:id="@+id/nav_mas"
android:icon="@drawable/ic_more_apps_black"
android:title="Descarga otras Apps" />
</menu>
</item>
</menu>
非常感谢您的帮助!
你需要在onCreate中添加这个方法:
hideNavigationItem();
private void hideNavigationItem() {
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_draw);
Menu nav_Menu = navigationView.getMenu();
nav_Menu.findItem(R.id.nav_inicio).setVisible(false);
}