2013-08-22 8 views
11

मैं कुछ सूची चयनकर्ताओं को अपने सूचीदृश्य में प्रत्येक आइटम पर सेट करने की कोशिश कर रहा हूं। मैं निम्नलिखित "सूची पृष्ठभूमि के लिए कस्टम चयनकर्ता

list_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_selected="true" 
      android:drawable="@drawable/row_selected_background" /> 
    <item android:state_activated="true" 
      android:drawable="@drawable/row_selected_background" /> 
    <item android:state_focused="true" 
      android:drawable="@drawable/row_selected_background" /> 
    <item android:drawable="@drawable/row_background" /> 
</selector> 

list.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

    <ListView 
      android:id="@android:id/list" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@drawable/row_background" 
      android:listSelector="@drawable/list_selector"> 

    </ListView> 
</RelativeLayout> 

किसी कारण से की कोशिश की है, सूची का चयन रद्द किया पृष्ठभूमि रंग के रूप में परिभाषित किया जाता है। लेकिन पर दबाया/एक सूची के लिए हमेशा डिफ़ॉल्ट एंड्रॉइड होलो ब्लू क्लिक करें। मैं गलत क्या कर रहा हूं?

उत्तर

19

उपयोग android:state_pressed दबाया राज्यों निर्दिष्ट करने के लिए सूचीदृश्य को चयनकर्ता लागू होते हैं।


Drawable उपयोग करने के लिए: /res/drawable/bg.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="@android:color/holo_red_dark"/> 
</shape> 

चयनकर्ता का उपयोग करें: /res/drawable/item.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/bg"/> 
</selector> 

ListView: किसी सूची आइटम दबाने पर

<ListView 
    android:id="@+id/list" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:saveEnabled="true" 
    android:listSelector="@drawable/item" 
    /> 

परिणाम:

enter image description here

नोट: सूची चयनकर्ता आइटम देखें पीछे तैयार की है, मद देखें अपनी ही पृष्ठभूमि हो सकता है।

+0

पर काम नहीं करता है, इसका कोई प्रभाव नहीं पड़ा –

+0

@ जॉनबैम अपडेट किया गया। –

1

चरण 1:

पहले row_selector.xml

चरण सेट 2: सभी राज्यों पारदर्शी साथ list_selector.xml सूची के लिए एक चयनकर्ता बनाएं: रूप

android:background="@drawable/row_selector" 

चरण 3 आइटम के लिए चयनकर्ता लागू डिफ़ॉल्ट राज्यों से छुटकारा पाने के लिए।

चरण 4: रूप

android:listSelector="@drawable/list_selector"

+0

खेद है कि सिर्फ एक टाइपो –

+0

कृपया देखें मेरी पोस्ट –

+0

संपादित करें मैं सभी राज्यों को पारदर्शी कैसे सेट करूं? –

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