【问题标题】:Android ActionBar styling issuesAndroid ActionBar 样式问题
【发布时间】:2013-05-16 03:46:23
【问题描述】:

我想为ActionBar 中显示的菜单项设置自定义背景。我发现可以通过将以下项目添加到我的应用主题样式定义中来做到这一点:

    <item name="android:actionBarItemBackground">@drawable/actionbar_button</item>

其中actionbar_button.xml 包含:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/action_btn_on" android:state_pressed="true" />
    <item android:drawable="@drawable/action_btn_off" />
</selector>

但是,这会导致背景图像也呈现在 ActionBar 左侧显示的自定义应用程序徽标后面。经过几次尝试找出只包含按钮的选择器后,我想出了这个:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/action_btn_on" android:state_pressed="true" android:state_enabled="true" />
    <item android:drawable="@drawable/action_btn_off" android:state_pressed="false" android:state_enabled="true"/>
    <item android:drawable="@android:color/transparent"/>
</selector>

哪种工作,在应用程序完全加载后,徽标后面的背景是透明的,正如我想要的那样。但问题是,虽然它仍在加载,但它会短暂显示带有按钮背景的徽标,更烦人的是,它缩放和裁剪徽标以适合 9-patch 图形的填充区域是按钮背景。加载完成后,背景被关闭,但缩放和裁剪仍然存在,看起来很丑陋。我该如何解决?

【问题讨论】:

    标签: android android-actionbar


    【解决方案1】:

    尚未找到解决将基于图像的背景设置为 ActionBar 按钮的一般问题的有效解决方案,但如果我使用输入的基于 XML 的背景(例如使用 layer-list 形状创建的背景),则不会发生缩放/裁剪。在某些情况下可能不可行,但在我的情况下这是完全可能的,甚至可能比使用基于位图的资源更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多