Andorid 点击按钮事件叠加时候的事件分析。

版权声明:欢迎你来转载,不过请带个此Blog链接! https://blog.csdn.net/luojiusan520/article/details/51241355

经过本人测试总结几点

默认设置下
二个或者两个以上Button位置一样,后面解析的Button(ImageButton一样同原理)获得点击的焦点实现点击监听。
<Button
android:id="@+id/iv1"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="50dp"
android:layout_centerInParent="true"
/>
<Button
android:id="@+id/iv2"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="50dp"
android:layout_centerInParent="true"
/>

这里两个Button一样但是默认设置下,第一个Button已经没有焦点了被第二个抢占。

  1. 如果第二个Button设置clickable=”false”,第一个Button获得点击,可以响应事件。
  2. 重点:如果第二个Button设置enabled=”false”则第一个也不能点击,第二个也不能点击,都没有点击效果。默认这一块矩形就没有了焦点。
  3. 如果再加一个控件Button3如下
    <Button
    android:id="@+id/iv1"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="50dp"
    android:layout_centerInParent="true"
    />
    <Button
    android:id="@+id/iv2"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="50dp"
    android:layout_centerInParent="true"
    android:enabled="false"
    />
    <Button
    android:id="@+id/iv3"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="50dp"
    android:layout_centerInParent="true"
    />

    那么这一块有获得了焦点。焦点给予了Button3,并且正常使用。

由此可以分析得出

clickable是将此点击按钮的点击事件监听取消,并不是点击效果取消。依然点击拦截了,只是没有监听返回
enabled是将此点击按钮的点击效果直接拦截了,这一块不能点击点击没反应。等于是这一块已经不是一个点击Button是一个图像。覆盖此区域以前所有的点击效果。当然有新的点击事件在此区域产生。并不影响:好比是橡皮擦把之前的点击效果清除,但是并不影响后来的点击效果。

猜你喜欢

转载自blog.csdn.net/luojiusan520/article/details/51241355