android - एंड्रॉइड: सूची पर हाइलाइट अक्षम करना देखें क्लिक करें




android-listview highlighting (10)

RoflcoptrException के जवाब को चाल करना चाहिए, लेकिन किसी कारण से यह मेरे लिए काम नहीं करता है, इसलिए मैं उस समाधान को पोस्ट कर रहा हूं जो मेरे लिए काम करता है, उम्मीद है कि यह किसी की मदद करेगा

<ListView 
android:listSelector="@android:color/transparent" 
android:cacheColorHint="@android:color/transparent"
/>

मैं नारंगी हाइलाइट को अक्षम करना चाहता हूं जो सूची को स्पर्श करते समय होता है पंक्ति देखें। अब तक मेरे एक्सएमएल में मैंने निम्नलिखित कोशिश की है:

android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"

अधिक जानकारी: जब कोई उपयोगकर्ता इस सूची पर स्क्रीन को छूता है तो मैं शून्य अंतर होना चाहता हूं। ऑब्जेक्ट देखें।


आप केवल उस pos प्राप्त कर सकते हैं जिसे आप onItemClick से प्राप्त करते हैं और करते हैं:

listView.setItemChecked(pos, false);

यह मुझे सबसे अच्छा तरीका पता है


आभासी और वास्तविक उपकरणों पर कुछ 'google'ing और परीक्षण के बाद, मुझे लगता है कि मेरे नीचे कोड काम करता है:

ArrayAdapter<String> myList = new ArrayAdapter<String>(this, R.layout.list_item, strText) {
    public boolean isEnabled(int position) 
    { 
            return false; 
    } 
};

ध्यान दें कि मैंने areAllItemsEnabled() भाग को छोड़ दिया है।


इसे अपने एक्सएमएल में जोड़ें:

android:listSelector="@android:color/transparent"

और समस्या के लिए यह काम कर सकता है (मुझे यकीन नहीं है और मुझे नहीं पता कि बेहतर समाधान हैं या नहीं):

आप अपने टेक्स्ट व्यू में ColorStateList लागू कर सकते हैं।


कुछ भी मुझे मदद नहीं करता है लेकिन यह:

transparent_drawable.xml :

<?xml version="1.0" encoding="utf-8"?>    
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#00000000"/>
</shape>

layout.xml :

android:listSelector="@drawable/transparent_drawable"

कोड में

listView.setSelector(getResources().getDrawable(R.drawable.transparent));

और खींचने योग्य फ़ोल्डर में छोटी पारदर्शी छवि जोड़ें।

पसंद: पारदर्शी.एक्सएमएल

<?xml version="1.0" encoding="utf-8"?>    
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#00000000"/>
</shape>

मेरे android:focusableInTouchMode="true" जाने का तरीका है। android:listSelector="@android:color/transparent" कोई उपयोग नहीं है। ध्यान दें कि मैं प्रत्येक पंक्ति में कई ऑब्जेक्ट्स के साथ एक कस्टम सूचीदृश्य का उपयोग कर रहा हूं।


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

उदाहरण के लिए, अपने सेल लेआउट में, android:background="@color/white" सेट करें android:background="@color/white"


विकल्प के रूप में:

listView.setSelector(android.R.color.transparent);

या

listView.setSelector(new StateListDrawable());

सूचियों के साथ एक्सएमएल में भी इसे जोड़ें .. आशा है कि यह काम करेगा

<ListView
android:cacheColorHint="@android:color/transparent"
android:listSelector="@android:color/transparent"/> 




highlighting