有没有一种方法可以使BottomNavigationView中的目标在横向模式下沿其长度均匀分布

时间:2019-12-27 06:20:15

标签: android bottomnavigationview material-components-android

 Bottom navigation view equally spaced items

在图标均匀分布的情况下,如果文本出现在相应图标下方会更好。 当前,这些项目以横向模式堆叠显示。

当前实施:

<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" />

1 个答案:

答案 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