2016-02-10 8 views
8

जब राज्य "सक्रिय" होता है तो मैं अपने दृश्य की पृष्ठभूमि बदलना चाहता हूं और मैं ?attr:selectableItemBackground के प्रभाव (लहर) को संरक्षित करना चाहता हूं। क्या ?attr:selectableItemBackground के चयनकर्ता को विस्तार या गठबंधन करना संभव है?एंड्रॉइड चयन योग्य इटैमबैकग्राउंड चयन

उत्तर

0

अपने अनुप्रयोग विषय में एप्लिकेशन आप कर सकते हैं विज्ञापन इस दौरान तरंग रंग बदलने के लिए

<item name="colorControlHighlight">@color/ripple</item> 
+1

मैं तरंग रंग बदलने के लिए नहीं करना चाहते, मैं जब राज्य "सक्रिय" है अर्थात पृष्ठभूमि का रंग चयनित बदलना चाहते हैं। – Asiat

+0

आप एक पृष्ठभूमि रंग जोड़ सकते हैं और क्लिक करने योग्य = रैपल रंग – Rohit

8

आपको अपने सक्रिय राज्य रंग पर असर drawable (?attr:selectableItemBackground) आकर्षित करने के लिए में एक LayerDrawable उपयोग कर सकते हैं।

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <selector> 
      <item android:state_activated="true"> 
       <color android:color="?attr/colorPrimary"/> 
      </item> 
      <item> 
       <color android:color="@android:color/transparent"/> 
      </item> 
     </selector> 
    </item> 
    <item android:drawable="?attr/selectableItemBackground"/> 
</layer-list> 

संपादित करें: यह विषय एक एक्सएमएल drawable में विशेषताओं का उपयोग करने के लिए एपीआई 21 से पहले संभव नहीं है, यह एक अग्रभूमि drawable के रूप में लहर प्रभाव drawable डाल करने के लिए बेहतर हो रहा है, और सक्रिय रंग चयनकर्ता drawable एक पृष्ठभूमि के रूप में खींचने योग्य।

<View 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/yourView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:foreground="?attr/selectableItemBackground" 
    android:background="@drawable/activated_color_selector"> 

res/drawable/activated_color_selector.xml युक्त के साथ:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_activated="true"> 
     <!-- Can't use the ?attr/colorPrimary before API 21 --> 
     <color android:color="@color/primaryColor"/> 
    </item> 
    <item> 
     <color android:color="@android:color/transparent"/> 
    </item> 
</selector> 
+1

के लिए सच जोड़ सकते हैं यह केवल लॉलीपॉप और ऊपर काम करेगा ... किटकैट और निचले उपकरणों पर अज्ञात वर्ग अपवाद के साथ दुर्घटनाग्रस्त हो जाएगा। –

+0

हाँ सच ... मैंने अभी पाया है कि लॉलीपॉप तक ड्रॉबल एक्सएमएल में थीम विशेषताओं का उपयोग करना संभव नहीं है। – Nit

संबंधित मुद्दे