可点击视图中的默认select器背景

我有一些可点击的意见,我想设置列表点击目前的默认可用背景(在ICS是一个蓝色)。 我曾试图把这个背景作为背景:

android:background="@android:drawable/list_selector_background" 

但它不是默认的蓝色(我使用的是橙色)。 android中默认使用的drawable是什么?

谢谢

它是list_selector_holo_dark或等效的holo light版本; 这些是Honeycomb及其以上版本的默认设置。 list_selector_background是在Gingerbread和下面使用的非holo版本。

编辑 :我相信 (但不能确认),平台不可知的select器是?android:attr/listSelector

这适用于我:

 android:background="?android:attr/selectableItemBackground" 

如果你使用的是appcompat-v7 ,你可以使用?attr/selectableItemBackground

有一种方法可以结合所有有效的答案:

定义一个属性(例如在values / attrs.xml中):

 <attr name="clickableItemBackground" format="reference"/> 

在依赖于平台的主题部分(例如,在values / styles.xml或values / themes.xml中)声明:

 <style name="Theme.Platform" parent="@android:style/Theme.Whatever"> <item name="clickableItemBackground">@android:drawable/list_selector_background</item> </style> 

在api-11 +的依赖于平台的主题部分中(例如在values-v11 / styles.xml或values-v11 / themes.xml中)声明:

 <style name="Theme.Platform" parent="@android:style/Theme.Holo.Whatever"> <item name="clickableItemBackground">?android:attr/selectableItemBackground</item> </style> 

然后在需要的地方使用?attr/clickableItemBackground

类似于flx的答案,但没有额外的属性定义的解决scheme。

用于预Holo设备的平台独立样式(在res\values\styles.xml ):

 <style name="SelectableItem"> <item name="android:background">@android:drawable/list_selector_background</item> </style> 

Holo设备样式(API Level 14+)(在res\values-v14\styles.xml ):

 <style name="SelectableItem"> <item name="android:background">?android:attr/selectableItemBackground</item> </style> 

将样式应用于所需的视图,例如LinearLayout

 <LinearLayout style="@style/SelectableItem" android:layout_width="match_parent" android:layout_height="wrap_content"> ... </LinearLayout> 

或者,

 android:background="?android:attr/listChoiceBackgroundIndicator 

如果你只是希望项目突出显示蓝色(或任何当前的默认值),而他们被点击。

这在api 11及更高版本上工作正常。 但正如所指出的,它不会在以前的版本工作。

 android:background="?android:attr/selectableItemBackground" 

这是一个解决scheme,让它在运行android的所有版本上运行。

  1. 在values文件夹中的colors.xml中添加适当的颜色。 它应该像这样出现:

     <color name="white">#ffffff</color> <color name="blue">#7ecce8</color> 
  2. 创build一个xmlselect器文件。 在这里我把它命名为button_selection.xml

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/blue"/> <!--pressed --> <item android:state_focused="true" android:drawable="@color/blue"/> <!-- focused --> <item android:drawable="@color/white"/> <!-- default --> </selector> 
  3. 转到您的视图或button,并将新创build的button_selection.xml设置为其背景。

     android:background="@drawable/button_selection"