Android,如何在运行时设置导航视图组的可见性?

3

我不知道如何在运行时设置导航视图组的可见性。我想在导航抽屉中创建一个登录功能。当用户点击登录项时,应用程序会执行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);
            }
        }
    }

什么也没发生。

1个回答

0
每次您的视图或当前活动更新时,都需要调用它,因为每次调用时都会加载menu.xml文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接