2013-01-25 17 views
7

मैं इसएक Relativelayout क्लिक करने योग्य कैसे बनाने के लिए?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mainLayout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:addStatesFromChildren="true" 
    android:clickable="true" 
    android:duplicateParentState="true" 
    android:focusable="true" 
    android:paddingBottom="10dip" > 

    <ImageView 
     android:id="@+id/imagView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:focusable="false" 
     android:background="@drawable/imageView_bg" 
     android:focusableInTouchMode="false" /> 

    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="18dip" 
     android:background="@drawable/button_bg" 
     android:clickable="false" 
     android:focusable="false" 
     android:focusableInTouchMode="false" 
     android:gravity="left|center_vertical" 
     android:paddingLeft="25dip" 
     android:textColor="#ffffff" 
     android:textSize="20dip" /> 

</RelativeLayout> 

button_bg.xml की तरह एक लेआउट

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

    </selector> 

imageView_bg.xml

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

</selector> 

छवि देख सकते हैं और बटन पर उपयोगकर्ता क्लिक images.when दबाया है देखें, दोनों छविदृश्य और बटन दबाएं (दबाए गए चित्र दिखा रहे हैं) लेकिन यह दबाए गए चित्र नहीं दिखाता है। इसे कैसे प्राप्त करें? समस्या कहाँ हे?

अग्रिम

+1

हल करती है तो आप अपने RelativeLayout के लिए एक OnClickListener देते हैं क्या लगता है? – Shark

+0

वे एक दूसरे के शीर्ष पर ढेर हैं? – njzk2

+1

एक दृश्य द्वारा छवि दृश्य को प्रतिस्थापित करें, जिसमें आप बटन डालते हैं, और बटन – njzk2

उत्तर

4

मैं इसे समस्या

((RelativeLayout)findViewById(R.id.mainLayout)).setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View view) { 
    ViewGroup viewGroup = (ViewGroup) view; 
    for (int i = 0; i < viewGroup .getChildCount(); i++) { 

     View viewChild = viewGroup .getChildAt(i); 
     viewChild.setPressed(true); 

      } 
    } 
}); 
0

Simple.Place FrameLayout अंदर RelativeLayout धन्यवाद।

13
RelativeLayout rl = (RelativeLayout)findViewById(R.id.mainLayout); 

rl.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View v) {} 
}); 
+0

पर डुप्लिकेट पैरेंट स्टेटस जोड़ें यदि आप रिलेवेटलाइट प्राप्त कर रहे हैं तो एक प्रकार के लिए हल नहीं किया जा सकता है ", सुनिश्चित करें कि आप शीर्ष पर निम्न आयात कर रहे हैं अपनी जावा फ़ाइल का आयात करें: android.widget.RelativeLayout आयात करें और आयात करें android.view.View; – jwinn

+1

क्या आप अभी 'एंड्रॉइड: क्लिक करने योग्य = "सत्य" सेट नहीं कर सकते? –

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