一个导航抽屉中的多个菜单

Multiple menus in one navigation drawer

我正在尝试为不同的用户(来宾、会员、管理员)创建一个 Android 应用程序。我在我的应用程序中使用导航抽屉。我想知道我是否可以为每个用户创建一个菜单。

示例:

访客菜单可以包含三个项目:登录、注册、联系我们。

会员菜单可以有不同的项目:个人资料、注销。

管理员菜单可以有:管理帐户、添加新成员。

我希望所有这些 xml 菜单都在一个导航抽屉中 activity。我想根据用户的状态更改它们。可以吗?

在这里你可以做的是在你的字符串数组中为客人、会员、管理员制作 2 个不同的数组,或者你可以通过 arrayList 为它们制作。像 guestMenuList、memberMenuList、adminMenuList

像这样在你的 Activity 中输入条件

if(isGuest){

   arrayList =  guestMenuList

}else if(isMember){

   arrayList =  memberMenuList

}else if(){

   arrayList =  adminMenuList

}

并将此列表附加到抽屉适配器中。

是的,您可以为特定用户创建每个菜单。例如,如果您有以下菜单:guest_menumember_menuadmin_menu。您可以像这样轻松地使用菜单:

// clear previous menu
navigationView.getMenu().clear();

switch (id) {
  case guest:
    navigationView.inflateMenu(R.menu.guest_menu);
    break;
  case member:
   navigationView.inflateMenu(R.menu.member_menu);
   break;
  case admin:
   navigationView.inflateMenu(R.menu.admin_menu);
   break;

}