Android中FrameLayout无法获取OnClick Event问题
我有一个FrameLayout,其中包含两个ImageView。
<FrameLayout android:id="@+id/fragment_userimg_framelayout" android:layout_width="95.0dip" android:layout_height="95.0dip" android:clickable="true" android:layout_centerHorizontal="true" android:layout_marginTop="20.0dip"> <ImageView android:id="@+id/fragment_userImg_default" android:layout_width="95.0dip" android:layout_height="95.0dip" android:layout_gravity="center" android:background="@drawable/shape_white" android:scaleType="centerCrop" android:src="@drawable/defualt_avater" /> <ImageView android:id="@+id/fragment_userImg" android:layout_width="95.0dip" android:layout_height="95.0dip" android:layout_gravity="center" android:background="@drawable/shape_transparent" android:scaleType="centerCrop" /> </FrameLayout>
然后分别给FrameLayout和两个ImageView设置onclickListener,实际效果只有第二个ImageView响应了点击事件。
原因在于Android的事件分发:
我给三个View都设置了onClickListener,那么实际上第二个ImageView会首先获得一个点击事件,但是它并不会将该事件向下传递:也就是该事件被该View截断,导致前两个View无法获取到这个事件。
那么如果我没有给第二个ImageView设置onClickListener,那么第一个ImageView将获得并截断点击事件。同理,要想获得FrameLayout的点击响应,必须不给它的任何子View设置OnClickListener。
相关推荐
小虎哥哥爱学习 2020-01-10
老菜鸟自习室 2011-10-04
gongzhiyao0 2011-12-12
刘炳昭 2019-07-01
Jemy杰 2019-06-26
taiyuanwuyin 2016-10-13
iqingfen 2015-08-26
ShareUs 2015-08-18
思捻如枫 2015-08-11
huzhenv 2013-06-24
NASA00 2013-06-18
mlsnatalie 2013-04-27
xinyao0 2013-04-04
hgl 2012-11-01
小迈 2012-02-20