16

I have a nested series of linear layouts in my xml code. I want the first child of the parent (also a linear layout) to take focus. It does this if I set focusable to true. I would also like pass the focus onto the children of this layout (in order to invoke their state-lists). However it does not pass any of it's focus onto it's children, even if they are set to focusable. Any ideas how to do this? Thanks

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:weightSum="1"
        android:layout_height="wrap_content"
        android:background="@drawable/resultpage_statelist"
        android:focusable="true"
        android:clickable="true">
        <TextView
            android:text="TextView"
            android:layout_height="wrap_content"
            android:paddingTop="5dip"
            android:paddingBottom="5dip"
            android:paddingLeft="10dip"
            android:layout_width="fill_parent"
            android:layout_weight="0.8"
            android:id="@+id/tag_row_text"
            android:textSize="16dip"
            android:padding="10dip"
            android:textColor="@drawable/resultpage_grey_text_statelist"
            android:background="#00000000"
            android:focusable="true">
        </TextView>
        <ImageView
            android:layout_height="wrap_content"
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_gravity="right|center_vertical"
            android:src="@drawable/arrow_statelist"
            android:layout_marginRight="10dip"
            android:background="#00000000"
            android:focusable="true">
        </ImageView>
    </LinearLayout>
    <LinearLayout
        android:layout_width="fill_parent"
        android:background="#6E6E6E"
        android:layout_height="1dip">
    </LinearLayout>
</LinearLayout>
JasonMArcher
  • 14,195
  • 22
  • 56
  • 52
steemcb
  • 563
  • 1
  • 7
  • 19

1 Answers1

37

Use the XML attribute 'android:duplicateParentState' set to true on the child view to get it to inherit the drawable state of its parent.

More details here: http://developer.android.com/reference/android/view/View.html#attr_android:duplicateParentState

Charles Harley
  • 7,184
  • 3
  • 32
  • 38