Передача фокуса от родителя к детям в линейном расположении - PullRequest
13 голосов
/ 09 марта 2011

У меня есть вложенная серия линейных макетов в моем XML-коде.Я хочу, чтобы первый дочерний элемент родителя (также линейный макет) сфокусировался.Это происходит, если я установил фокус на true.Я также хотел бы передать фокус на потомков этого макета (чтобы вызвать их списки состояний).Однако он не передает своего внимания своим детям, даже если они настроены на фокусировку.Есть идеи, как это сделать?Спасибо

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

1 Ответ

31 голосов
/ 06 мая 2011

Используйте атрибут XML 'android: duplicateParentState', установленный в true для дочернего представления, чтобы он мог наследовать состояние рисования своего родителя.

Подробнее здесь: http://developer.android.com/reference/android/view/View.html#attr_android:duplicateParentState

...