如何在Android的底部导航视图中更改图标的位置?

时间:2017-08-17 12:03:34

标签: android bottomnavigationview

我想在Android上的BottomNavigation视图中更改图标的位置。 您可以在以下内容中查看相关代码:

XML:

  <android.support.design.widget.BottomNavigationView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/navigation"
    android:layout_alignParentBottom="true"
    android:background="@color/lightBlue"
    app:itemIconTint="@color/black"
    app:itemTextColor="@color/black"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:layout_gravity="start"
    app:menu="@menu/bottom_nav_items" />

菜单项

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:id="@+id/menu_polter"
    android:title="@string/back_polter"
    android:icon="@drawable/ic_menu_revert"
    />
<item
    android:id="@+id/menu_nbe"
    android:title="@string/go_nbe"
    android:icon="@drawable/icon_arrow_black"
    android:layout_marginLeft="80dip"
    />
</menu>

如下图所示,&#34; weiter zur Polterliste&#34;和&#34; weiter zur Holzerfassung&#34;位于底部导航的中心。 你能告诉我如何改变左右两侧的位置吗? &#34; weiter zur Polterliste&#34;在左边和&#34; weiter zur Holzerfassung&#34;在右边。 enter image description here

2 个答案:

答案 0 :(得分:2)

我建议您使用tablayout或其他布局而不是BottomNavigationView,因为它只支持菜单项和菜单项无法将drawables设置为左或右

<android.support.design.widget.BottomNavigationView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:layout_alignParentBottom="true"
        android:background="@color/red">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left|center_vertical"
            android:drawableLeft="@drawable/ic_menu_send"
            android:gravity="center"
            android:padding="10dp"
            android:text="ABC" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right|center_vertical"
            android:gravity="center"
            android:drawableRight="@drawable/ic_menu_send"
            android:padding="10dp"
            android:text="DEF" />
    </android.support.design.widget.BottomNavigationView>

这符合您的需要,如果有任何疑问在快乐编码下方评论,则单独设置ID

答案 1 :(得分:0)

尝试要创建从右到左菜单,您只需要添加android:layoutDirection =&#34; rtl&#34;到菜单标签

  

机器人:的layoutDirection =&#34; RTL&#34;

 <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:gravity="end"
        android:layoutDirection="rtl"
        android:layout_gravity="end">

        <group android:checkableBehavior="single"
            android:layout_gravity="end"
            android:gravity="end">

           <item
               android:id="@+id/menu_polter"
               android:title="@string/back_polter" 
               android:gravity="end"
               android:layout_gravity="end"
               android:icon="@drawable/ic_menu_revert"/>
           <item
               android:id="@+id/menu_nbe"
               android:title="@string/go_nbe"
               android:gravity="end"
               android:layout_gravity="end"
               android:icon="@drawable/icon_arrow_black"
               android:layout_marginLeft="80dip"
    />

    </menu>

你可以在这里看到来源: http://developer.android.com/reference/android/util/LayoutDirection.html#LTR

api 17及以上