android – 以编程方式膨胀底部导航视图菜单

前端之家收集整理的这篇文章主要介绍了android – 以编程方式膨胀底部导航视图菜单前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
底部导航视图已添加到设计支持库的第25版中.尝试过,现在使用起来要容易得多.

但我正面临按照我的应用程序要求实现它的问题.
我想动态地扩展菜单资源并以编程方式更改底部导航视图的菜单项/标题.

inflateMenu(int menuResource) — Inflate a menu for the bottom navigation view using a menu resource identifier.

根据文件

inflateMenu: void inflateMenu (int resId)
Inflate a menu resource into this navigation view.
Existing items in the menu will not be modified or removed.
Parameters
resId int: ID of a menu resource to inflate

尝试以编程方式使用此inflateMenu(int resID)方法导航视图抛出异常“未找到资源”

  1. bottomNavigationView.inflateMenu(R.menu.bottom_navigation_menu);

是否有可能在没有任何第三方库的情况下实现它?

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. xmlns:app="http://schemas.android.com/apk/res-auto">
  6.  
  7. <FrameLayout
  8. android:id="@+id/main_fragment_container"
  9. android:layout_width="match_parent"
  10. android:layout_height="match_parent"
  11. android:layout_above="@+id/bottom_navigation" />
  12.  
  13. <android.support.design.widget.BottomNavigationView
  14. android:id="@+id/bottom_navigation"
  15. android:layout_width="match_parent"
  16. android:layout_height="wrap_content"
  17. android:layout_alignParentBottom="true"
  18. app:itemBackground="@color/theme_action_bar_bg"
  19. app:itemIconTint="@color/white"
  20. app:itemTextColor="@color/white" />
  21. </RelativeLayout>

菜单资源:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <menu xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto">
  4. <item
  5. android:id="@+id/nav_bar_item_dashboard"
  6. android:enabled="true"
  7. android:icon="@drawable/ic_nav_bar_dashboard_24px"
  8. android:title="@string/nav_bar_item_dashboard"
  9. app:showAsAction="ifRoom" />
  10. <item
  11. android:id="@+id/nav_bar_item_people"
  12. android:enabled="true"
  13. android:icon="@drawable/ic_nav_bar_people_24px"
  14. android:title="@string/nav_bar_item_people"
  15. app:showAsAction="ifRoom" />
  16. <item
  17. android:id="@+id/nav_bar_item_classroom"
  18. android:enabled="true"
  19. android:icon="@drawable/ic_nav_bar_classroom_24px"
  20. android:title="@string/nav_bar_item_classrooms"
  21. app:showAsAction="ifRoom" />
  22.  
  23. <item
  24. android:id="@+id/nav_bar_item_manage"
  25. android:enabled="true"
  26. android:icon="@drawable/ic_nav_bar_manage_24px"
  27. android:title="@string/nav_bar_item_manage"
  28. app:showAsAction="ifRoom" />
  29.  
  30. <item
  31. android:id="@+id/nav_bar_item_more"
  32. android:enabled="true"
  33. android:icon="@drawable/ic_nav_bar_more_24px"
  34. android:title="@string/nav_bar_item_more"
  35. app:showAsAction="ifRoom" />
  36. </menu>

在menuresource中以编程方式为“活动中的底部导航”视图进行充气:

  1. navBar = (BottomNavigationView) findViewById(R.id.bottom_navigation);
  2. navBar.inflateMenu(R.menu.bottom_navigation_view);

解决方法

  1. BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
  2.  
  3. //Add MenuItem with icon to Menu
  4. navigation.getMenu().add(Menu.NONE,1,Menu.NONE,"Home").setIcon(R.drawable.ic_home_black_24dp);

希望能帮助到你.

猜你在找的Android相关文章