底部导航视图已添加到设计支持库的第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)方法导航视图抛出异常“未找到资源”
bottomNavigationView.inflateMenu(R.menu.bottom_navigation_menu);
是否有可能在没有任何第三方库的情况下实现它?
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> <FrameLayout android:id="@+id/main_fragment_container" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/bottom_navigation" /> <android.support.design.widget.BottomNavigationView android:id="@+id/bottom_navigation" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" app:itemBackground="@color/theme_action_bar_bg" app:itemIconTint="@color/white" app:itemTextColor="@color/white" /> </RelativeLayout>
菜单资源:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/nav_bar_item_dashboard" android:enabled="true" android:icon="@drawable/ic_nav_bar_dashboard_24px" android:title="@string/nav_bar_item_dashboard" app:showAsAction="ifRoom" /> <item android:id="@+id/nav_bar_item_people" android:enabled="true" android:icon="@drawable/ic_nav_bar_people_24px" android:title="@string/nav_bar_item_people" app:showAsAction="ifRoom" /> <item android:id="@+id/nav_bar_item_classroom" android:enabled="true" android:icon="@drawable/ic_nav_bar_classroom_24px" android:title="@string/nav_bar_item_classrooms" app:showAsAction="ifRoom" /> <item android:id="@+id/nav_bar_item_manage" android:enabled="true" android:icon="@drawable/ic_nav_bar_manage_24px" android:title="@string/nav_bar_item_manage" app:showAsAction="ifRoom" /> <item android:id="@+id/nav_bar_item_more" android:enabled="true" android:icon="@drawable/ic_nav_bar_more_24px" android:title="@string/nav_bar_item_more" app:showAsAction="ifRoom" /> </menu>
在menuresource中以编程方式为“活动中的底部导航”视图进行充气:
navBar = (BottomNavigationView) findViewById(R.id.bottom_navigation); navBar.inflateMenu(R.menu.bottom_navigation_view);
解决方法
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation); //Add MenuItem with icon to Menu navigation.getMenu().add(Menu.NONE,1,Menu.NONE,"Home").setIcon(R.drawable.ic_home_black_24dp);
希望能帮助到你.