2011-04-28 26 views
23

में एक सूची आइटम की तरह चयन करने योग्य रैखिक लेआउट बनाएं, मुझे पता है कि पूरे लेआउट को एक क्लिक लक्ष्य बनाने के लिए ऑनरिक श्रोता को एक लाइनरलायआउट में कैसे जोड़ना है, लेकिन मैं लाइनरलाइट को हाइलाइट करना चाहता हूं सूची दृश्य में एक सूची आइटम की तरह टैप किया गया। ऐसा करने का सबसे अच्छा तरीका क्या है?एक सूची दृश्य (एंड्रॉइड)

उत्तर

14

मैं इसमें भाग गया और यही वह है जो मैं आया था। अपने लेआउट में, एक drawable संसाधन के लिए पृष्ठभूमि सेट:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/clickable_layout" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/clickable"> 
... 
</LinearLayout> 
फिर drawable में

, clickable.xml जोड़ने के रूप में इतना:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" 
    android:drawable="@android:drawable/list_selector_background" />  
</selector> 

तो यह आप पर निर्भर है या नहीं, आप एक जोड़ना चाहते हैं अपनी गतिविधि में हैंडलर पर क्लिक करें।

0

आप लेआउट क्लिक करने योग्य = झूठी के अंदर सभी तत्वों को सेट कर सकते हैं। फिर आपको कुछ रंगों में लेआउट पृष्ठभूमि सेट करके चयन व्यवहार की नकल करनी चाहिए और लेआउट क्लिक होने पर अन्य सभी को पृष्ठभूमि पारदर्शी सेट कर सकते हैं। आप लेआउट आईडी का उपयोग इंडेक्स के रूप में कर सकते हैं यह जानने के लिए कि कौन सा लेआउट चुना गया है।

25

मैं एक सरल तरीका पसंद करते हैं:

<LinearLayout android:orientation="vertical" 
       android:id="@+id/layoutIdentifier" 
       android:clickable="true" 
       android:background="?android:attr/selectableItemBackground" 

       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

    <!-- put views here --> 
</LinearLayout> 

आप राज्य दबाया पृष्ठभूमि इस तरह से नहीं बदल सकते हैं, लेकिन कभी कभी तुम सच में नहीं करने की ज़रूरत है।

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