2014-12-13 13 views
13

प्रदर्शित नहीं होता है मैंने एक लहर को खींचने योग्य परिभाषित किया है और इसे सूची दृश्य आइटम दृश्य की पृष्ठभूमि के लिए पृष्ठभूमि के रूप में सेट किया है। यह लगभग ठीक काम करता है लेकिन कभी-कभी लहर प्रभाव प्रेस पर दिखाई नहीं देता है।रिपल प्रभाव कभी-कभी

यहाँ लहर drawable कोड है:

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="?android:attr/colorControlHighlight"> 
    <item> 
     <selector> 
      <item android:state_activated="true"> 
       <shape><solid android:color="?android:attr/colorButtonNormal"/> 
       </shape> 
      </item> 

      <item> 
       <shape><solid android:color="@android:color/transparent"/> 
       </shape> 
      </item> 
     </selector> 
    </item> 
</ripple> 

और मैं जो दराज मदों के लिए पृष्ठभूमि के रूप में इस drawable का उपयोग करता है एक नेविगेशन ड्रॉर है: जब मैं एप्लिकेशन को खोलने

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/navigation_menu_height" 
    android:orientation="horizontal" 
    android:background="@drawable/listItemBackground"> 
    ....  
</RelativeLayout> 

हालांकि हर बार , जब मैं इसे दबाता हूं तो डिफ़ॉल्ट चयनित आइटम तरंग प्रभाव नहीं दिखाता है। लेकिन जब मैं एक और आइटम चुनता हूं और फिर इसे फिर से चुनता हूं, तो सब ठीक हो जाएगा।

मैं वही सूची दृश्य को छोड़कर, लगभग उसी सूची दृश्य के लिए बिल्कुल वही उपयोग करता हूं, सिवाय इसके कि विकल्प मोड एकाधिक है। और इस बार, जब तक उनका चयन नहीं किया जाता है तब तक आइटम प्रेस पर लहर प्रभाव नहीं दिखाएंगे।

एक और सूची में देखें, जो विकल्प मोड निर्दिष्ट नहीं करता है, केवल पहला आइटम लहर प्रभाव दिखाता है, और अन्य कम एंड्रॉइड संस्करणों के समान व्यवहार करते हैं।

मुझे वास्तव में कोई जानकारी नहीं है कि मैं इसे सभी परिदृश्यों के लिए कैसे काम कर सकता हूं। हो सकता है कि यह वास्तव में ListView के पसंद मोड से संबंधित है?

==== संपादित ====

मैं इन सभी तीन listviews के लिए हाल ही में जोड़े संपत्ति drawSelectorOnTop और अब पहले दो समस्याओं साफ़ हो जाएंगे। हालांकि तीसरे के लिए, अब यह इस तरह बन जाता है:

लहर प्रभाव दो वस्तुओं को छोड़कर पहले आइटम को छोड़कर सभी वस्तुओं पर अच्छा काम करता है! उनमें से एक शुरू होता है जहां से मेरी उंगली दबाती है जबकि दूसरा हमेशा मध्य से शुरू होता है!

==== संपादित करें पर दोबारा ==== ठीक है, अब मैं drawable tweak सूचीदृश्य के लिए drawSelectorOnTop विशेषता के साथ एक साथ लहर नोड के बाहर सक्रिय स्थिति स्थानांतरित करने के लिए, समस्या अब पूरी तरह से चला गया।

+2

मैं आपका दूसरा संपादन देख रहा हूं - यदि आपने समाधान निकाला है और इसे ठीक किया है, तो आगे बढ़ें और इसे विस्तृत उत्तर के रूप में पोस्ट करें, और इसे सही के रूप में चिह्नित करें। यह किसी को सड़क के नीचे मदद कर सकता है। –

उत्तर

6

ठीक है, कुछ कोशिश करने और त्रुटि के बाद, मुझे अंत में यह काम मिल गया है। ListView है कि आइटम पृष्ठभूमि के रूप में drawable का उपयोग के लिए

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_activated="true"> 
     <shape> 
      <solid android:color="?android:attr/colorButtonNormal"/> 
     </shape> 
    </item> 
    <item> 
     <ripple android:color="?android:attr/colorControlHighlight"> 
      <item> 
       <shape> 
        <solid android:color="@android:color/transparent"/> 
       </shape> 
      </item> 
     </ripple> 
    </item> 
</selector> 

उसके बाद, drawSelectorOnTop सेट सच करने के लिए:

पहले, लहर नोड से बाहर सक्रिय राज्य चलते हैं।

अब लहर प्रभाव पूरी तरह से काम कर सकता है।

0

मेरे मामले में लहर प्रभाव पहले क्लिक के बाद काम कर रहा है, लेकिन पहले क्लिक के लिए यह मेरे लिए काम नहीं करता था। एंड्रॉइड के साथ पृष्ठभूमि चयनकर्ता फ़ाइल बदल दी है: state_activated = "true" और main.xml एंड्रॉइड में: क्लिक करने योग्य = "सत्य" तो यह हर समय ठीक काम करता है।

selector.xml (रेस \ drawable \ selector.xml के तहत)

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_activated="true" android:drawable="@drawable/card_bg_pressed" android:state_enabled="true" android:state_pressed="true"/> 
<item android:state_activated="true" android:drawable="@drawable/card_bg_focused" android:state_enabled="true" android:state_focused="true"/> 
<item android:state_activated="true" android:drawable="@drawable/card_bg_selected" android:state_enabled="false" android:state_selected="true"/> 
</selector> 

activity_main में।xml

<com.mysample.RecyclingImageView 
    android:id="@+id/imageview_overlay" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:background="@drawable/selector" 
    android:clickable="true" /> 
संबंधित मुद्दे