2010-08-24 15 views
7

मैं अपने ऐप पर नेविगेट करने के लिए टच स्क्रीन के बिना उन लोगों के लिए आसान बनाने के लिए एक सूची दृश्य में चयनकर्ता को लागू करने का प्रयास कर रहा हूं। बात यह है कि, सूची दृश्य में चयनकर्ता को लागू करके, यह केवल संपूर्ण रंगों में पृष्ठभूमि रंगों को लागू करने लगता है, न कि इसके अंदर की वस्तुओं को।एंड्रॉइड: संपूर्ण सूची दृश्य फोकस पर रंग बदलता है, न सिर्फ सूची आइटम देखें

कोई विचार? drawable फ़ोल्डर में

<ListView 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:listSelector="@drawable/listselector" 
    /> 

    <TextView android:id="@android:id/empty" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="There are no Clients yet." 
     /> 

listselector.xml:

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    android:id="@+id/myselector" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Non focused states --> 
    <item 
     android:state_focused="false" 
     android:state_selected="false" 
     android:state_pressed="false" 
     android:drawable="@color/darkblue" /> 
    <item 
     android:state_focused="false" 
     android:state_selected="true" 
     android:state_pressed="false" 
     android:drawable="@color/green" /> 

    <!-- Focused states --> 
    <item 
     android:state_focused="true" 
     android:state_selected="false" 
     android:state_pressed="false" 
     android:drawable="@color/green" /> 
    <item 
     android:state_focused="true" 
     android:state_selected="true" 
     android:state_pressed="false" 
     android:drawable="@color/green" /> 

    <!-- Pressed --> 
    <item 
     android:state_pressed="true" 
     android:drawable="@color/green" /> 
</selector> 
+0

बस बाहर किसी और को मदद करने के लिए है जो इस समस्या हो सकती है : मैंने एंड्रॉइड के रूप में ListItem आइटम बच्चे के चयनकर्ता के अधिकार को लागू करके इसे ठीक किया: पृष्ठभूमि विशेषता, और यह काम किया! –

+1

आपको –

उत्तर

40

कारण आप ध्यान केंद्रित रंग देख रहे हैं पूरी सूची के लिए लागू किया जा रहा है क्योंकि आप सीधे एक संदर्भित किया है है यहाँ कुछ कोड है केंद्रित और दबाए गए राज्यों के लिए रंग मूल्य। एंड्रॉइड v2.3 में एक ज्ञात बग है और नीचे जहां रंग आकर्षित करने योग्य इन परिस्थितियों में इसकी सीमा का सम्मान नहीं करता है।

इस समस्या को हल करने के लिए आप वांछित रंगों और संदर्भ के बजाय एक आकृति खींचने योग्य बना सकते हैं।

जैसे 'के रूप में ड्रॉएबल/list_selector_focused.xml' में आकार को परिभाषित:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 

    <solid android:color="@color/green" /> 

</shape> 

और फिर संदर्भ कि चयनकर्ता में:

<item android:state_focused="true" 
     android:state_selected="true" 
     android:state_pressed="false" 
     android:drawable="@drawable/list_selector_focused" /> 
+4

से नीचे सही उत्तर स्वीकार करना चाहिए यह समस्या का सही निदान है और वर्तमान में यह प्राप्त होने की अपेक्षा अधिक अपवर्तनीय है। :) –

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