我的应用程序上有一个带有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" />
提前致谢。
答案 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>