可点击视图中的默认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的所有版本上运行。
-
在values文件夹中的colors.xml中添加适当的颜色。 它应该像这样出现:
<color name="white">#ffffff</color> <color name="blue">#7ecce8</color>
-
创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>
-
转到您的视图或button,并将新创build的button_selection.xml设置为其背景。
android:background="@drawable/button_selection"