我已经制作了菜单和底部导航视图及其菜单但是当我添加app:menu" @ menu / bottom_navigation_menu"当我尝试运行时,整个Bar消失了,应用程序崩溃了。
活动主要似乎正确实施:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
tools:context="com.troy.connor.lightswitch.MainActivity">
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</FrameLayout>
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_nav_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/colorPrimary"
app:itemIconTint="@color/white"
app:itemTextColor="@color/white"
app:menu="@menu/bottom_navigation_menu"/>
</LinearLayout>
以及菜单项:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/buttonSlider"
android:icon="@drawable/ic_slider"
android:title="Sliders"
/>
<item
android:id="@+id/buttonPalette"
android:icon="@drawable/ic_palette"
android:title="Palette"
/>
<item
android:id="@+id/buttonShuffle"
android:icon="@drawable/ic_shuffle"
android:title="Shuffle"
/>
<item
android:id="@+id/buttonSchedule"
android:icon="@drawable/ic_alarm_off"
android:title="Schedule"
/>
<item
android:id="@+id/buttonConnect"
android:icon="@drawable/ic_bt_off"
android:title="Connect"
/>
<item
android:id="@+id/buttonStats"
android:icon="@drawable/ic_timeline"
android:title="Statistics"
/>
</menu>
答案 0 :(得分:0)
如果你检查崩溃的堆栈跟踪,你会发现:
03-29 00:08:30.568 9850 9850 E AndroidRuntime: Caused by: java.lang.IllegalArgumentException: Maximum number of items supported by BottomNavigationView is 5. Limit can be checked with BottomNavigationView#getMaxItemCount()
的确,如果你查看the documentation for BottomNavigationView
,你会发现:
当应用程序有三到五个顶级目标时,应该使用它。
解决方案很简单:删除一个菜单项。如果这不适合您,则必须创建自己的底部导航实施,而不是使用BottomNavigationView
。