2010-07-01 15 views
10

मैं एंड्रॉइड 2.2 में ग्रिड व्यू में ऑब्जेक्ट्स की हाइलाइटिंग को अक्षम करने का प्रयास कर रहा हूं।एंड्रॉइड ग्रिड व्यू को पूरी तरह से हाइलाइट करना अक्षम करें (चयन अक्षम करें)

मैं कह रहा है कि मैं एक पारदर्शी ColorDrawable (android:listSelector="@android:color/transparent") के चयनकर्ता स्थापित करना चाहिए this other answer पाया है, लेकिन मेरे GridView में विचारों अभी भी हल्के हो जाते हैं जब मैं उन्हें का चयन करें।

मैं ग्रिड में स्थिर वस्तुओं को प्रदर्शित करने के लिए केवल ग्रिड व्यू का उपयोग कर रहा हूं। इन वस्तुओं में से कोई भी नहीं चुना जाएगा। क्या मूलभूत दृश्य का उपयोग करना और मेरी छवियों को मैन्युअल रूप से आकर्षित करना बेहतर होगा?

+0

जांच यह पता https://stackoverflow.com/questions/18415844/disable-gridview-item-onclick-and-enable-only-on-child-view – sushmita

उत्तर

22

ठीक है, ऐसा लगता है कि मुझे जवाब मिल गया।

GridView के लिए अपने एडाप्टर की परिभाषा में, आप निम्न विधियों को ओवरराइड करना होगा:

@Override 
public boolean areAllItemsEnabled() 
{ 
    return false; 
} 

@Override 
public boolean isEnabled(int position) 
{ 
    return false; 
} 

इस गैर चयन होने के लिए अपने ग्रिड में आइटम के सभी का कारण होगा, लेकिन यह मिल जाएगा पूरी तरह से हाइलाइट से छुटकारा पाएं।

+2

यदि आपको बच्चों को ध्यान देने योग्य होने की आवश्यकता है तो एंड्रॉइड: descendantFocusability = "afterDescendants" – eveliotc

+0

धन्यवाद यहां बहुत कुछ है, यदि आपके पास अपनी सूची में कस्टम ऑब्जेक्ट्स हैं (विचार ..) और उनके ऑनक्लिकलिस्टर को ओवरराइट करें, तो आप उन्हें चुन सकते हैं: =) सही :) – cV2

+0

यह अक्षम आइटम चयन पूरी तरह से – coderek

1

बस Set v.setOnClickListener(null);

+0

यह आपके एडाप्टर.get व्यू विधि – jfleong

+0

I में है। अभी भी ग्रिड व्यू के लिए क्लिक इवेंट प्राप्त करने में सक्षम होने की आवश्यकता है, लेकिन मुझे यकीन है कि अन्य स्थितियों में काम करेगा। – Kenny

+0

यह एक अपवाद – EyadMhanna

36

आइटम क्लिक करने योग्य आप attr नीचे का उपयोग करना चाहिए रखने के लिए।

एंड्रॉयड: listSelector = "# 00000000" भी

देखें: अपने GridView एक्सएमएल में https://stackoverflow.com/a/2866074/928591

+2

बनाएगा मुझे लगता है कि यह स्वीकार्य उत्तर होना चाहिए ... – Radu

+1

@Radu इस समाधान का स्पष्ट रूप से प्रश्न में काम नहीं किया गया था। – blahdiblah

+0

बेहतर उपयोग एंड्रॉइड: listSelector = "@ null" –

0

तुम सिर्फ चयन के दृश्य पहलू को निष्क्रिय करना चाहते हैं, तो आप क्या कर सकते हैं निम्नलिखित:

gridview.getSelector().setAlpha(0); 
संबंधित मुद्दे