如何在Android上的小工具栏图标之间更改空间大小?

时间:2016-10-01 12:58:33

标签: android toolbar

我的应用程序上有一个带有4个图标的工具栏小部件,我想将这些图标之间的空间大小更改为相同。

形成这个: current design

是这样的: wanted design

menu.xml文件

<?xml version="1.0" encoding="utf-8"?>

<item
    android:id="@+id/action_home"
    android:orderInCategory="100"
    android:icon="@drawable/white_home"
    android:title="@string/action_settings"
    app:showAsAction="always" />

<item
    android:id="@+id/action_profile"
    android:orderInCategory="101"
    android:icon="@drawable/white_profile"
    android:title="@string/action_settings"
    app:showAsAction="always" />

<item
    android:id="@+id/action_inbox"
    android:orderInCategory="102"
    android:icon="@drawable/white_inbox"
    android:title="@string/action_settings"
    app:showAsAction="always" />

<item
    android:id="@+id/action_contacts"
    android:orderInCategory="103"
    android:icon="@drawable/white_contacts"
    android:title="@string/action_settings"
    app:showAsAction="always" />

app_bar_main.xml

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

</android.support.design.widget.AppBarLayout>

<include layout="@layout/content_main" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    app:srcCompat="@drawable/ic_fab_plus"
    app:backgroundTint="@color/colorPrimary" />

提前致谢。

1 个答案:

答案 0 :(得分:1)

以下是example如何破解工具栏以放置其中所有宽度的项目。

要点是你需要声明自己的工具栏的继承者,你在其中覆盖addView方法:

@Override
public void addView(View child, ViewGroup.LayoutParams params) {
    if (child instanceof ActionMenuView) {
        params.width = LayoutParams.MATCH_PARENT;
    }
    super.addView(child, params);
}

<强>已更新

如果您希望能够通过xml修改操作项之间的空间而不想扩展Toolbar.class,并且还使用工具栏作为操作栏(我调用了您调用setSupportActionBar()然后styles.xml资源文件中的can chang应用主题:

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:actionButtonStyle">@style/MyActionButtonStyle</item>
</style>

<style name="MyActionButtonStyle" parent="AppBaseTheme">
    <item name="android:minWidth">20dp</item>
    <item name="android:padding">0dp</item>
</style>