如何在Android中使ActionBar图标居中/居左/居右对齐

12

你好,我希望能够像下面的图片一样在工具栏中对齐一组图标。

我在谷歌上搜索了一些内容,并做了一些更改,现在代码如下:

mainActivity.xml

...

<include
    android:id="@+id/tool_bar_bottom"
    layout="@layout/tool_bar"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    />
 ....

在menu_bottom.xml文件中:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">

    <item
        android:id="@+id/action_forward"

        android:title="forward"
        android:orderInCategory="100"
        android:icon="@drawable/ic_action_arrow_forward"
        android:layout_alignParentRight="true"
        app:showAsAction="always"
        ></item>


    <item
        android:id="@+id/action_zoom_in"
        android:orderInCategory="200"
        android:title="zoom in"
        android:icon="@drawable/ic_action_zoom_in"
        app:showAsAction="always"
        ></item>



    <item
        android:id="@+id/action_home"
        android:orderInCategory="300"
        android:title="home"
        android:icon="@drawable/ic_action_home"
        app:showAsAction="always"
        ></item>


    <item
        android:id="@+id/action_refresh"
        android:orderInCategory="400"
        android:title="refresh"
        android:icon="@drawable/ic_action_refresh"
        app:showAsAction="always"
        ></item>

    <item
        android:id="@+id/action_zoom_out"
        android:orderInCategory="500"
        android:title="zoom out"
        android:icon="@drawable/ic_action_zoom_out"
        app:showAsAction="always"
        ></item>

    <item
        android:id="@+id/action_back"
        android:orderInCategory="600"
        android:title="back"
        android:icon="@drawable/ic_action_arrow_back"
        android:layout_alignParentLeft="true"
        app:showAsAction="always"
        ></item>


</menu>

在此输入图片描述

我添加了android:layout_alignParentLeft/right="true"让左侧图标靠左,右侧图标靠右。

同时,我想让其他图标浮动居中并相互靠拢。

代码没有任何变化。

我还添加了android:layout_centerVertical = "true"以让其它所有图标垂直居中显示......

如何正确显示视图?


请参考此答案:https://dev59.com/JITba4cB1Zd3GeqP9rKU - Mike Scamell
还可以在这里查看:https://dev59.com/TF0Z5IYBdhLWcg3wtSI8 - SharpC
1个回答

0

这个答案可能有点晚了。然而,使用当今的材料组件库,您可以使用底部应用栏来实现所需的结果。请参见伪代码片段:

<androidx.coordinatorlayout.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.material.bottomappbar.BottomAppBar
        android:id="@+id/bottomAppBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        app:backgroundTint="@color/colorBottomBar"
        app:fabAlignmentMode="center"
        app:contentInsetLeft="0dp"
        app:contentInsetStart="0dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <TextView
                style="?android:attr/borderlessButtonStyle"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1
                android:drawableTop="@drawable/ic_blur"
                android:gravity="center"

            </TextView>

            <TextView
                style="?android:attr/borderlessButtonStyle"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1
                android:drawableTop="@drawable/ic_blur"
                android:gravity="center"

            </TextView>

            <TextView
                style="?android:attr/borderlessButtonStyle"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1
                android:drawableTop="@drawable/ic_blur"
                android:gravity="center"

            </TextView>

            <TextView
                style="?android:attr/borderlessButtonStyle"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1
                android:drawableTop="@drawable/ic_blur"
                android:gravity="center"

            </TextView>

            <TextView
                style="?android:attr/borderlessButtonStyle"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1
                android:drawableTop="@drawable/ic_blur"
                android:gravity="center"

            </TextView>

            <TextView
                style="?android:attr/borderlessButtonStyle"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1
                android:drawableTop="@drawable/ic_blur"
                android:gravity="center"

            </TextView>
        </LinearLayout>
    </com.google.android.material.bottomappbar.BottomAppBar>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

android:drawableTop="@drawable/ic_blur" 会用于表示您想要在底部应用栏中显示的图标。

您需要导入材料组件库才能使用底部应用栏。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接