Androidサポートv7がアプリケーションに含まれていても
Android:background="?android:attr/selectableItemBackground"
を追加
私のIDEを作成すると、Eclipseはエラーをスローし(コンパイルを妨げます)、selectableItemBackgroundはmin Api 11以降のみのものであることを通知します。
この属性をXMLの背景に追加するにはどうすればよいですか?
上位のライブラリからコピーして貼り付けることは解決策ではないと想定する
この属性はライブラリ(v7をサポート)で定義されているため、ユーザー定義の属性として使用します:Android:
プレフィックスなし:
Android:background="?attr/selectableItemBackground"
表示されるエラーは、?android:attr/selectableItemBackground
が11以上のAPIバージョンで利用可能であることを指摘しています。
これがselectedItemBackgroundです。 /platforms/Android-14/data/res/themes.xmlにあります
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:exitFadeDuration="@Android:integer/config_mediumAnimTime">
<item Android:state_window_focused="false" Android:drawable="@color/transparent" />
<!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
<item Android:state_focused="true" Android:state_enabled="false" Android:state_pressed="true" Android:drawable="@drawable/list_selector_background_disabled" />
<item Android:state_focused="true" Android:state_enabled="false" Android:drawable="@drawable/list_selector_background_disabled" />
<item Android:state_focused="true" Android:state_pressed="true" Android:drawable="@drawable/list_selector_background_transition" />
<item Android:state_focused="false" Android:state_pressed="true" Android:drawable="@drawable/list_selector_background_transition" />
<item Android:state_focused="true" Android:drawable="@drawable/list_selector_background_focused" />
<item Android:drawable="@color/transparent" />
</selector>
Android SDKディレクトリでドロウアブルを見つけることができます
../platforms/Android-14/data
このテーマの専門家ではありませんが、プラットフォームバージョンベースのテーマが必要なようです。 公式ガイド は、このプロセスをかなりよく説明しています。
バージョンごとに異なるXMLファイルを作成し、res/values-v7
、res/values-v11
などに保存する必要があります。その後、これらのスタイルをビューに使用します。このようなもの:
res/values-v7
:
<style name="LightThemeSelector" parent="Android:Theme.Light">
...
</style>
res/values-v11
:
<style name="LightThemeSelector" parent="Android:Theme.Holo.Light">
<item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
...
</style>
次に、ビューにスタイルを使用します。
<TextView
style="@style/LightThemeSelector"
Android:text="@string/hello" />
お役に立てれば。乾杯。