在图标均匀分布的情况下,如果文本出现在相应图标下方会更好。 当前,这些项目以横向模式堆叠显示。
当前实施:
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_nav_bar"
style="@style/Widget.MaterialComponents.BottomNavigationView.Colored"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:itemIconTint="@color/selector_icon_tint_bottom_nav"
app:itemTextColor="@color/selector_icon_tint_bottom_nav"
app:labelVisibilityMode="labeled"
app:menu="@menu/bottom_nav" />
答案 0 :(得分:1)
尝试一下,希望它能起作用。它对我有用
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/colorPrimary"
app:labelVisibilityMode="labeled"
app:itemIconTint="@color/white"
app:itemTextColor="@color/white"
app:menu="@menu/bottom_navigation_menu" />
</FrameLayout>
在res下创建一个菜单目录,并在该目录中进行XML布局
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_home"
android:icon="@drawable/ic_home"
android:title="Home" />
<item
android:id="@+id/navigation_profile"
android:icon="@drawable/ic_profile"
android:title="Profile" />
<item
android:id="@+id/navigation_about"
android:icon="@drawable/ic_aboutUs"
android:title="About Us" />
<item
android:id="@+id/navigation_logout"
android:icon="@drawable/ic_logout"
android:title="Logout" />
</menu>
在主要活动中,实现BottomNavigationView.OnNavigationItemSelectedListener并实现其all方法,然后您可以对每个图标进行所需的操作
bottomNavigationView = findViewById(R.id.bottom_navigation_view);
bottomNavigationView.setOnNavigationItemSelectedListener(this);
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
Toast.makeText(this, "Home", Toast.LENGTH_SHORT).show();
return true;
case R.id.navigation_profile:
Toast.makeText(this, "Profile", Toast.LENGTH_SHORT).show();
return true;
case R.id.navigation_about:
Toast.makeText(this, "About Us", Toast.LENGTH_SHORT).show();
return true;
case R.id.navigation_logout:
Toast.makeText(this, "Logout", Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
编辑:有关视频教程,您也可以参阅此教程 (https://www.youtube.com/watch?v=oeKtwd1DBfg)