Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make a Relativelayout clickable?

I have a layout like this

<?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>

The image view and button have pressed images.when the user clicks on the view ,wants to press both imageview and button(Showing pressed images).But it does not show pressed images. How to achieve this? Where is the problem?

Thanks in advance

like image 981
Devu Soman Avatar asked Jan 25 '13 11:01

Devu Soman


2 Answers

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

rl.setOnClickListener(new View.OnClickListener(){
    public void onClick(View v) {}
 });
like image 147
Swati Avatar answered Oct 07 '22 18:10

Swati


I think it solves the problem

((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);

          }
    }
});
like image 35
Devu Soman Avatar answered Oct 07 '22 16:10

Devu Soman