【问题标题】:Set selected item background color on Android dropdown navigation在 Android 下拉导航中设置所选项目的背景颜色
【发布时间】:2014-08-14 18:10:29
【问题描述】:

我认为这是一个简单的问题,但我无法找到具体问题的答案。

我已阅读 this great article 并想在股票 ActionBar 的 Android 下拉列表中设置 所选项目 的背景颜色(我没有使用 Sherlock,我的目标是ICS+),如下图链接所示:

到目前为止,我已经以这种方式设置了我的主题:

<resources>
  <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
    <item name="android:dropDownListViewStyle">@style/MyDropDownListView</item>        
  </style>
  <style name="MyDropDownListView" parent="android:style/Widget.Holo.ListView.DropDown">
    <item name="android:listSelector">@drawable/ad_selectable_background</item>
  </style>
</resources>

这是我的 ad_selectable_background.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"
              android:exitFadeDuration="@android:integer/config_mediumAnimTime" >
    <item android:state_pressed="true" android:drawable="@android:color/holo_blue_light" />
    <item android:drawable="@android:color/transparent" />
</selector>

我的下拉视图资源是:

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

按下状态有效,但是当您打开菜单时,不会显示任何选择。 我想使用选择器将其设置为 holo_blue_light,但我无法找到正确的语法 using XML

如果可能的话,我正在寻找仅 XML 的答案(即不使用任何代码)。谢谢!

【问题讨论】:

    标签: android android-actionbar android-spinner


    【解决方案1】:

    显然,这很简单!

    我必须编辑 ad_selectable_background.xml 以使用 checked 状态(就像我之前所做的那样,但我错过了以下主题):

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android"
                  android:exitFadeDuration="@android:integer/config_mediumAnimTime" >
        <item android:state_pressed="false" android:state_checked="true" android:drawable="@android:color/holo_blue_light" />
        <item android:state_pressed="true" android:drawable="@android:color/holo_blue_light" />
        <item android:drawable="@android:color/transparent" />
    </selector>
    

    然后通过添加 android:spinnerDropDownItemStyle 项目并禁用 checkMark 来编辑 主题(因为我不想要单选按钮),这样:

    <resources>
      <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
        <item name="android:dropDownListViewStyle">@style/MyDropDownListView</item>
        <item name="android:spinnerDropDownItemStyle">@style/MySpinnerDropDownItem</item>
      </style>
      <style name="MyDropDownListView" parent="android:style/Widget.Holo.ListView.DropDown">
        <item name="android:listSelector">@drawable/ad_selectable_background</item>
      </style>
      <style name="MySpinnerDropDownItem" parent="android:style/Widget.DropDownItem.Spinner">
        <item name="android:background">@drawable/ad_selectable_background</item>
        <item name="android:checkMark">@null</item>
      </style>
    </resources>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-06
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 2016-07-26
      • 1970-01-01
      相关资源
      最近更新 更多