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);