いくつかのクリック可能なビューがあり、リストクリックに存在するデフォルトの利用可能な背景を設定したい(ICSは青色)。背景としてこれを入れてみた:
Android:background="@Android:drawable/list_selector_background"
しかし、それは私がデフォルトで持っているデフォルトの青ではありません(私が使用したものはオレンジです)。 Androidクリックセレクタとしてデフォルトで使用されるドロアブルは何ですか?
ありがとう
list_selector_holo_dark
または同等のホロライトバージョン。これらはHoneycomb以上のデフォルトです。 list_selector_background
は非ホロバージョンで、Gingerbread以下で使用されます。
[〜#〜] edit [〜#〜]:Ibelieve(ただし確認できません)プラットフォームに依存しないセレクターは ?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
を使用します。
これは、API 11以降で正常に機能します。ただし、前述のように、以前のバージョンでは機能しません。
Android:background="?android:attr/selectableItemBackground"
すべてのバージョン Androidの実行で実行するためのソリューションを次に示します。
Valuesフォルダー内にあるcolors.xml内に適切な色を追加します。次のように表示されます。
<color name="white">#ffffff</color>
<color name="blue">#7ecce8</color>
Xmlセレクタファイルを作成します。ここでは、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_selection.xmlを背景として設定します。
Android:background="@drawable/button_selection"
Flxの答えに似たソリューションですが、追加の属性定義はありません。
ホロ以前のデバイスに使用されるプラットフォームに依存しないスタイル(res\values\styles.xml
):
<style name="SelectableItem">
<item name="Android:background">@Android:drawable/list_selector_background</item>
</style>
Holoデバイスのスタイル(APIレベル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
アイテムがクリックされている間、青(または現在のデフォルト)を強調表示するだけの場合。
Background
を設定すると、後で背景色または描画可能を選択できなくなります。したがって、私のスタイルは、このスタイルをstyles.xml
に追加することです。
<style name="TouchableView">
<item name="Android:foreground">?android:attr/selectableItemBackground</item>
</style>
そして、すべてのビューで追加するだけです:
Android:theme="@style/TouchableView"
[〜#〜] any [〜#〜] VIEW!
<TextView
Android:id="@+id/my_orders"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginRight="0dp"
Android:theme="@style/TouchableView"
Android:background="@color/white"
Android:gravity="left"
Android:padding="10dp"
Android:text="@string/my_orders"
Android:textColor="@color/gray"
Android:textSize="14sp" />
忘れないでくださいonClickListener
を追加して結果を表示します。