繁体   English   中英

Xamarin.Android:将动态菜单项添加到DrawerLayout的Navigation视图中

[英]Xamarin.Android : Add the dynamic menu items to Navigation view of DrawerLayout

我按照示例使用android.support.v4.widget.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" />

我在堆栈溢出时发现类似的线程,并尝试了以下方法:

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

Menu menu = mDrawerList.getMenu();

我在getMenu()没有任何getMenu() / GetMenu()方法。 任何人都可以建议在DrawerLayout的NavigationView中动态添加菜单以及图标的正确方法。

回答我的问题:

假设您有一个菜单项列表,例如:

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中动态添加菜单项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM