相关疑难解决方法(0)

Android:如何将click事件传播到LinearLayout子项并更改其drawable

我想创建一个线性布局,其行为与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>
Run Code Online (Sandbox Code Playgroud)

在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();
    }
}
Run Code Online (Sandbox Code Playgroud)

但它仍然保持相同的状态.非常感谢您的帮助.

android onclick android-linearlayout

19
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×1

android-linearlayout ×1

onclick ×1