0
我準備了2個xml菜單文件,放在我的res /菜單文件夾中。如果用戶沒有在。 登錄他們登錄後,該菜單項將改爲menu_afterLogin.xml如何從xml動態生成導航抽屜項目?
menu_beforeLogin.xml將被顯示。
我試着叫InflateMenu()我的onResume()方法,但它與不斷增加的XML文件每當的onResume()代替調用刪除的項目結束/重新生成菜單列表。
我寧願檢查用戶是否登錄或不在onResume()方法。
什麼是動態更改導航抽屜列表的正確方法 ?
MainActivity.cs
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
...
mDrawer = FindViewById<NavigationView>(Resource.Id.navigation_drawer);
...
}
protected override void OnResume()
{
base.OnResume();
string token = pref.GetString (Constant.PREF_TOKEN, "");
mDrawer.InflateMenu ((token == "") ? Resource.Menu.menu_drawer_notLoggedIn : Resource.Menu.menu_drawer);
mDrawer.Invalidate();
...
}
佈局/ main.axml
<android.support.v4.widget.DrawerLayout>
<android.support.design.widget.CoordinatorLayout>
...
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@drawable/menu_background"
app:headerLayout="@layout/drawer_header" />
</android.support.v4.widget.DrawerLayout>
RES /菜單/ menu_beforeLogin.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_login"
android:icon="@drawable/navigation_login"
android:title="@string/navigation_login" />
<item
android:id="@+id/navigation_notice"
android:icon="@drawable/navigation_notice"
android:title="@string/navigation_notice" />
<item
android:id="@+id/navigation_contactUs"
android:icon="@drawable/navigation_contactUs"
android:title="@string/navigation_contactUs" />
</menu>
RES /菜單/ menu_afterLogin.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_notice"
android:icon="@drawable/navigation_notice"
android:title="@string/navigation_notice" />
<item
android:id="@+id/navigation_profile"
android:icon="@drawable/navigation_profile"
android:title="@string/navigation_profile" />
<item
android:id="@+id/navigation_contactUs"
android:icon="@drawable/navigation_contactUs"
android:title="@string/navigation_contactUs" />
<item
android:id="@+id/navigation_logout"
android:icon="@drawable/navigation_logout"
android:title="@string/navigation_logout" />
</menu>