android एंड्रॉइड-समर्थन v7 के साथ एक्सएमएल में selectableItemBackground लागू करें




android-xml android-support-library (3)

यहां इटैमबैकग्राउंड चुना गया है। आप इसे /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>

और आप अपने एंड्रॉइड एसडीके निर्देशिका में drawables पा सकते हैं

../platforms/android-14/data

मेरे आवेदन में एंड्रॉइड समर्थन v7 के साथ भी शामिल है

android:background="?android:attr/selectableItemBackground" जोड़ना android:background="?android:attr/selectableItemBackground"

मेरा आईडीई बनाता है, ग्रहण एक त्रुटि फेंकता है (मुझे संकलन से रोकता है), मुझे यह सूचित करते हुए कि चयन योग्य इटैम बैकग्राउंड केवल न्यूनतम एपीआई 11 और ऊपर के लिए है।

मैं एक्सएमएल में पृष्ठभूमि में यह विशेषता कैसे जोड़ूं?

मान लें कि एक उच्च पुस्तकालय से प्रतिलिपि बनाना और पेस्ट करना समाधान नहीं है


चूंकि गुण लाइब्रेरी (समर्थन v7) में परिभाषित किया गया है, इसलिए आप इसे उपयोगकर्ता द्वारा परिभाषित विशेषता के रूप में उपयोग करेंगे: यानी android: बिना android: उपसर्ग:

android:background="?attr/selectableItemBackground"

आप जो त्रुटि देखते हैं वह इंगित कर रही है ?android:attr/selectableItemBackground एपीआई संस्करणों के लिए उपलब्ध है> = 11. सच है, वास्तव में।


इस विषय पर कोई विशेषज्ञ नहीं है, लेकिन ऐसा लगता है कि आपको प्लेटफ़ॉर्म संस्करण आधारित थीमिंग की आवश्यकता है। आधिकारिक मार्गदर्शिका इस प्रक्रिया को बहुत अच्छी तरह से बताती है।

आपको प्रत्येक संस्करण के लिए अलग-अलग एक्सएमएल फाइलें बनाना और उन्हें 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" />

उम्मीद है की यह मदद करेगा। चीयर्स।





android-support-library