我很困惑如何在运行时设置导航视图组的可见性。我想在导航抽屉上创建一个登录功能。当用户在那里点击登录项时,应用程序会执行startActivityForResult()
. 这是我的菜单 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_featured" android:icon="@drawable/ic_notifications_on_24dp"
android:title="Featured" />
<item android:id="@+id/nav_top_rated" android:icon="@drawable/ic_star_rate_24dp"
android:title="Top Rated" android:checked="true"/>
<item android:id="@+id/nav_most_visited" android:icon="@drawable/ic_group_24dp"
android:title="Most Visited" />
<item android:id="@+id/nav_arround_you" android:icon="@drawable/ic_place_24dp"
android:title="Arround You" />
</group>
<group android:id="@+id/public_items">
<item android:title="My Account">
<menu>
<item android:id="@+id/nav_login" android:icon="@drawable/ic_person_24dp"
android:title="Login" />
</menu>
</item>
</group>
<group android:id="@+id/login_items" android:visible="false">
<item android:title="My Account">
<menu>
<item android:id="@+id/nav_search" android:icon="@drawable/ic_directions_bike_24dp"
android:title="Search"/>
<item android:id="@+id/nav_my_bookings" android:icon="@drawable/ic_event_available_24dp"
android:title="My Bookings"/>
<item android:id="@+id/nav_profile" android:icon="@drawable/ic_tag_faces_24dp"
android:title="My Profile"/>
<item android:id="@+id/nav_logout" android:icon="@drawable/ic_power_settings_new_black_24dp"
android:title="Logout"/>
</menu>
</item>
</group>
</menu>
这是我的java代码。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == REQUEST_CODE_FOR_LOGIN) {
navigationView.getMenu().setGroupVisible(R.id.login_items, true);
}
}
}
什么也没发生。