【问题标题】:Multiple menus in one navigation drawer一个导航抽屉中的多个菜单
【发布时间】:2019-03-04 17:58:44
【问题描述】:

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

示例:

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

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

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

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

【问题讨论】:

  • 根据您的帐户创建3个菜单文件,并在登录时检查您的帐户并相应地设置其菜单文件

标签: android navigation-drawer


【解决方案1】:

是的,您可以为特定用户创建每个菜单。例如,如果您有以下菜单: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;

}

【讨论】:

  • 非常感谢。我试过你的想法,它奏效了
【解决方案2】:

您可以在这里为您的字符串数组中的访客、成员、管理员创建 2 个不同的数组,或者您可以通过 arrayList 为这些数组创建。比如guestMenuList、memberMenuList、adminMenuList

像这样在您的活动中添加条件

if(isGuest){

   arrayList =  guestMenuList

}else if(isMember){

   arrayList =  memberMenuList

}else if(){

   arrayList =  adminMenuList

}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    相关资源
    最近更新 更多