2016-11-22 29 views
1

我跟着this示例使用android.support.v4.widget.DrawerLayout設計導航菜單視圖。在drawer_menuList.xml定義Xamarin.Android:將動態菜單項添加到DrawerLayout的導航視圖中

我的靜態菜單項列表:

<group 
     android:id="@+id/group" 
     android:checkableBehavior="single"> 
     <item 
      android:id="@+id/item1" 
      android:icon="@drawable/item1" 
      android:title="Item1" /> 
     <item 
      android:id="@+id/Item2" 
      android:icon="@drawable/item2" 
      android:title="Item2"/> 
    </group> 

activity_main.axml

<android.support.design.widget.NavigationView 
     android:id="@+id/nav_view" 
     android:layout_height="match_parent" 
     android:layout_width="wrap_content" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     app:headerLayout="@layout/nav_header" 
     app:menu="@menu/drawer_menuList" /> 

我發現堆棧溢出this類似的線程,嘗試這樣做:

NavigationView mDrawerList = FindViewById<NavigationView>(Resource.Id.nav_view); 

Menu menu = mDrawerList.getMenu(); 

我在xamarin.android中找不到任何getMenu()/GetMenu()方法。任何人都可以提出正確的方法來在NavigationView的DrawerLayout中動態地添加菜單和圖標。

+0

。菜單,通常Xamarin接近'getX'的方法是將其轉換爲屬性 –

+0

getX:它返回視圖的視覺x位置。但根據android文檔getMenu(),返回與此導航視圖關聯的Menu實例。我需要這個不是視覺座標位置 –

回答

3

回答我的問題:

假設你有一個菜單項,如列表:

List<MenuItems> lst = new List<MenuItems>(); 
lst = GetMenuItems(); 

然後在xamarin我們可以動態填充他們的標題菜單項和圖標:

NavigationView navigationView = FindViewById<NavigationView>(Resource.Id.nav_view); 
    foreach (MenuItems objMenuItems in lst) 
     { 
     int iconID = (int)typeof(Resource.Drawable).GetField(objMenuItems.IconName).GetValue(null); 

     navigationView.Menu.Add(objMenuItems.Title).SetIcon(iconID); 
     } 

通過這種方式,您可以在DrawerLayout的NavigationView中動態添加菜單項。

+0

好的答案親愛的:)! –

相關問題