android ViewTreeObserver,无法从onclicklistener获取正确的组件

android ViewTreeObserver,无法从onclicklistener获取正确的组件,android,imageview,onclicklistener,Android,Imageview,Onclicklistener,我在网格布局中有六个线性布局: <GridLayout android:id="@+id/gridRollShutter" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="0.5" android:columnCount="3" android:rowCount="2" > <Linea

我在网格布局中有六个
线性布局

     <GridLayout
    android:id="@+id/gridRollShutter"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.5"
    android:columnCount="3"
    android:rowCount="2" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_row="0"
        android:background="@drawable/border"
        android:gravity="center" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_row="0"
        android:background="@drawable/border"
        android:gravity="center" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="2"
        android:layout_row="0"
        android:background="@drawable/border"
        android:gravity="center" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_row="1"
        android:background="@drawable/border"
        android:gravity="center" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_row="1"
        android:background="@drawable/border"
        android:gravity="center" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="2"
        android:layout_row="1"
        android:background="@drawable/border"
        android:gravity="center" />
</GridLayout

>
触发单击事件时。我得到了确切的标记,但事件总是发生在最后一个
线性布局的最后一个
图像视图中。我不知道为什么会这样

请给我一张有问题的支票,提前谢谢

触发单击事件时。我得到了确切的标签,但事件 始终发生在最后一个线性布局的最后一个图像视图中。我不知道 知道为什么会这样

我假设“事件”是指在该图像的
OnClickListener
中启动的动画。在这种情况下,可能会发生这种情况,因为在
OnClickListener
中,您使用
imgAlpha
引用来启动动画。由于
for
循环,该引用将始终指向最后一个
ImageView
。解决方案是直接使用
v
参数,因为它表示设置了
OnClickListener
的视图,
ImageView

//...
Logger.error("tag: " + v.getTag());
v.startAnimation(animationEnlarge);

您是对的,您帮助我了解了问题:因为“imaAlpha”是我在代码顶部定义的“局部变量”。因此,始终引用最后一个组件。非常感谢你
//...
Logger.error("tag: " + v.getTag());
v.startAnimation(animationEnlarge);