Android:Как передать событие клика дочерним элементам LinearLayout и изменить их возможности рисования

Я хотел бы создать линейный макет, который вел бы себя аналогично ImageButton.

<LinearLayout
    android:id="@+id/container"
    style="?WidgetHomeIconContainer">            

    <ImageView
        android:id="@+id/icon"
        style="?WidgetHomeIcon" />

    <TextView
        android:id="@+id/title"
        style="?WidgetHomeLabel"             
        android:text="@string/title"
        android:textAppearance="?attr/TextHomeLabel" />
</LinearLayout>

В стилях ImageView, TextView и LinearLayout я установил селекторы для всех состояний.

Теперь:

  • когда я нажимаю на ImageView (Я попробовал это также с ImageButton)-он ведет себя правильно, и изображение изменяется в соответствии с селектором xml.
  • когда я нажимаю на LinearLayout -щелкается линейный макет, но ImageView и TextView не меняют его отрисовку/внешний вид

Итак, я хотел бы сделать следующее. Когда я нажимаю на родительский LinearLayout, мне нужно изменить все его дочерние элементы на нажатое состояние.

Я попытался добавить следующий код в LinearLayout onClickListener для распространения щелчка:

@Override
public void onClick(View v)
{
    LinearLayout l = (LinearLayout) v;
    for(int i = 0; i < l.getChildCount(); i++)
    {
        l.getChildAt(i).setClickable(true);
        l.getChildAt(i).performClick();
    }
}

Но он все тот же. Большое спасибо за любую помощь.

19
задан Bhiefer 16 April 2012 в 08:40
поделиться