使用AppCompat删除操作栏菜单项的填充

时间:2013-10-01 05:59:38

标签: android android-actionbar android-appcompat

我通过将以下样式用于我的活动来使用叠加操作栏

style.xml

    <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat" >
    <item name="windowActionBarOverlay">true</item>
    <item name="android:background">#00f3ead8</item>
    <item name="android:windowBackground">@drawable/logo1024</item>
</style>

我只有一个要显示的菜单项

menu.xml文件

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto">
<item
    android:id="@+id/menusettings"
    android:orderInCategory="100"
    android:icon="@drawable/settings"
    android:title="Menu"
    yourapp:showAsAction="always"
    />
  <menu>

Icon,the settings.png正在被8dp填充 但我想在顶部和底部填充0,以便它覆盖整个操作栏

请在非常接近项目截止日期的情况下帮助我解决问题 提前致谢

2 个答案:

答案 0 :(得分:2)

一年后...... 删除v7.Toolbar的操作按钮上的填充仍然具有挑战性。 经过大量实验后,这是一个有效的解决方案,在API 15及更高版本上进行了测试(理论上应该可以使用&gt; API 7)。 首先,应该像这样应用工具栏样式(主题)

<android.support.v7.widget.Toolbar
     app:theme="@style/AppTheme.Toolbar"
     android:layout_width="match_parent"
     android:layout_height="?attr/actionBarSize">
</android.support.v7.widget.Toolbar>

接下来,values/styles.xml

<style name="AppTheme.Toolbar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="actionButtonStyle">@style/AppTheme.Toolbar.ActionButton</item>
</style>
<!-- this will be applied regardless api version -->
<style name="Base.AppTheme.Toolbar.ActionButton" parent="@style/Widget.AppCompat.ActionButton">
    <item name="android:minWidth">0dp</item>
    <item name="android:minHeight">0dp</item>
</style>

<!-- this will be applied on < API 17 -->
<style name="AppTheme.Toolbar.ActionButton" parent="@style/Base.AppTheme.Toolbar.ActionButton">
    <item name="android:padding">0dp</item>
</style>

最后一步,values-v17/styles.xml

<!-- this will be applied on >= API 17 -->
<style name="AppTheme.Toolbar.ActionButton" parent="@style/Base.AppTheme.Toolbar.ActionButton">
    <item name="android:paddingStart">0dp</item>
    <item name="android:paddingEnd">0dp</item>
</style>

答案 1 :(得分:0)

那么你的问题大约在一年前,但它可能对其他人有所帮助。

检查解决方案: how to add padding between menu items in android?

单独设置填充可能没有帮助。您也必须使用minWidth属性。 我也使用AppCompat,绝对有效。

<style name="Theme.Styled" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="actionButtonStyle">@style/Widget.Styled.Base.ActionButton</item>
</style>

<style name="Widget.Styled.Base.ActionButton" parent="@style/Widget.AppCompat.Base.ActionButton">
    <item name="android:minWidth">20dp</item>
    <item name="android:paddingLeft">0dp</item>
    <item name="android:paddingRight">15dp</item>
</style>