Как LinearLayout может передавать событие onPressed дочерним элементам? - PullRequest
2 голосов
/ 20 марта 2012

У меня есть LinearLayout и его дочерний элемент - ImageView. OnCreate моей деятельности ничего не делает, кроме как для настройки просмотра контента. XML-источник представления содержимого выглядит следующим образом:

    <?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="fill_parent"
    android:gravity="center"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:clickable="true"
        android:gravity="center"    
        android:background="@android:color/white"    
        android:layout_height="wrap_content" >

        <ImageView
            android:layout_width="140dp"
            android:layout_height="80dp"
            android:background="@android:color/darker_gray"
            android:clickable="true"
            android:src="@drawable/selector" />
    </LinearLayout>

</LinearLayout>

Где @ drawable / selector:

    <selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/foo1" android:state_pressed="true"/>
    <item android:drawable="@drawable/foo2"/>

</selector>

Случай 1: я нажимаю ImageView.

Случай 2: Я нажимаю LinearLayout вне ImageView.

В 1-м случае ImageView меняет свое изображение src (с foo2 на foo1), во 2-м случае ничего не меняет. Как я могу заставить ImageView изменить свое изображение src во втором случае?

1 Ответ

9 голосов
/ 20 марта 2012

Попробуйте установить

android:duplicateParentState="true"

на своих дочерних элементах xml.

...