如何在Android中居中&左&右对齐ActionBar图标
Posted
技术标签:
【中文标题】如何在Android中居中&左&右对齐ActionBar图标【英文标题】:How to center&left&right align the ActionBar icons in Android 【发布时间】:2015-09-16 21:07:24 【问题描述】:您好,我想在工具栏中对齐一组图标,如下图所示。
我用谷歌搜索了一些更改后:
mainActivity.xml
...
<include
android:id="@+id/tool_bar_bottom"
layout="@layout/tool_bar"
android:layout_
android:layout_
/>
....
在 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"
添加到所有其他图标...
怎样才能正确显示视图?
【问题讨论】:
看到这个答案:***.com/questions/26627612/… 另见此处:***.com/questions/31154029/… 【参考方案1】:这个答案可能有点晚了。但是,使用当今当前的材料组件库,您可以使用底部应用栏来实现您想要的结果。见伪代码sn-p:
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_
android:layout_>
<com.google.android.material.bottomappbar.BottomAppBar
android:id="@+id/bottomAppBar"
android:layout_
android:layout_
android:layout_gravity="bottom"
app:backgroundTint="@color/colorBottomBar"
app:fabAlignmentMode="center"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp">
<LinearLayout
android:layout_
android:layout_
android:orientation="horizontal">
<TextView
style="?android:attr/borderlessButtonStyle"
android:layout_
android:layout_
android:layout_weight="1
android:drawableTop="@drawable/ic_blur"
android:gravity="center"
</TextView>
<TextView
style="?android:attr/borderlessButtonStyle"
android:layout_
android:layout_
android:layout_weight="1
android:drawableTop="@drawable/ic_blur"
android:gravity="center"
</TextView>
<TextView
style="?android:attr/borderlessButtonStyle"
android:layout_
android:layout_
android:layout_weight="1
android:drawableTop="@drawable/ic_blur"
android:gravity="center"
</TextView>
<TextView
style="?android:attr/borderlessButtonStyle"
android:layout_
android:layout_
android:layout_weight="1
android:drawableTop="@drawable/ic_blur"
android:gravity="center"
</TextView>
<TextView
style="?android:attr/borderlessButtonStyle"
android:layout_
android:layout_
android:layout_weight="1
android:drawableTop="@drawable/ic_blur"
android:gravity="center"
</TextView>
<TextView
style="?android:attr/borderlessButtonStyle"
android:layout_
android:layout_
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" 将用于表示您希望在底部应用栏中显示的图标。
您必须导入材料组件库才能使用底部应用栏
【讨论】:
以上是关于如何在Android中居中&左&右对齐ActionBar图标的主要内容,如果未能解决你的问题,请参考以下文章
在 100% 高度的 div 中居中 div(垂直和水平)(引导程序)