经过本人测试总结几点
默认设置下
二个或者两个以上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已经没有焦点了被第二个抢占。
- 如果第二个Button设置clickable=”false”,第一个Button获得点击,可以响应事件。
- 重点:如果第二个Button设置enabled=”false”则第一个也不能点击,第二个也不能点击,都没有点击效果。默认这一块矩形就没有了焦点。
- 如果再加一个控件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是一个图像。覆盖此区域以前所有的点击效果。当然有新的点击事件在此区域产生。并不影响:好比是橡皮擦把之前的点击效果清除,但是并不影响后来的点击效果。