bahkan dengan dukungan android v7 termasuk dalam aplikasi saya
menambahkan
android:background="?android:attr/selectableItemBackground"
membuat saya IDE, Gerhana melempar kesalahan (mencegah saya dari kompilasi), memberitahu saya bahwa selectableItemBackground hanya untuk min Api 11 dan up.
Bagaimana cara menambahkan atribut ini untuk latar belakang dalam XML?
asumsikan bahwa menyalin dan menempel dari tempat yang lebih tinggi perpustakaan bukan solusi
Sejak atribut didefinisikan di perpustakaan (dukungan v7), anda akan menggunakan itu sebagai pengguna-didefinisikan atribut: i.e tanpa android:
awalan:
android:background="?attr/selectableItemBackground"
Kesalahan yang anda lihat ini menunjukkan bahwa ?android:attr/selectableItemBackground
tersedia untuk versi API >= 11. Benar, memang.
Berikut ini adalah selectedItemBackground. Anda dapat menemukannya di /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>
dan anda dapat menemukan drawables di direktori Android SDK
../platforms/android-14/data
Tidak seorang ahli pada subjek, tetapi tampaknya anda perlu versi platform berbasis theming. The panduan resmi menjelaskan proses ini cukup baik, saya pikir.
Anda harus membuat file XML untuk versi masing-masing dan menyimpannya di res/nilai-v7
, res/nilai-v11
dll. Kemudian gunakan styles untuk pandangan anda. Sesuatu seperti ini:
di res/nilai-v7
:
<style name="LightThemeSelector" parent="android:Theme.Light">
...
</style>
di res/nilai-v11
:
<style name="LightThemeSelector" parent="android:Theme.Holo.Light">
<item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
...
</style>
Kemudian menggunakan gaya untuk tampilan:
<TextView
style="@style/LightThemeSelector"
android:text="@string/hello" />
Semoga ini bisa membantu. Sorak-sorai.