我按照this示例使用android.support.v4.widget.DrawerLayout设计导航菜单视图。
我的静态菜单项列表在 drawer_menuList.xml 中定义为:
<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()
方法。任何人都可以建议在DrawerLayout的NavigationView中动态添加菜单和图标的正确方法。
答案 0 :(得分: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中动态添加菜单项。