Par*_*han 39
您可以通过View禁用所有子点击事件.
public static void enableDisableView(View view, boolean enabled) {
view.setEnabled(enabled);
if ( view instanceof ViewGroup ) {
ViewGroup group = (ViewGroup)view;
for ( int idx = 0 ; idx < group.getChildCount() ; idx++ ) {
enableDisableView(group.getChildAt(idx), enabled);
}
}
}
Run Code Online (Sandbox Code Playgroud)
Cam*_*ham 26
您可以将此函数添加到父布局视图,而不是遍历所有子视图
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return true;
}
Run Code Online (Sandbox Code Playgroud)
这将在onTouchEvent任何子视图之前调用,如果返回true,则根本onTouchEvent不会调用for子视图.您可以创建一个布尔字段成员,以根据需要打开和关闭此状态.
这是Parag Chauhan 的答案的 Kotlin 扩展函数实现
fun View.setAllEnabled(enabled: Boolean) {
isEnabled = enabled
if (this is ViewGroup) children.forEach { child -> child.setAllEnabled(enabled) }
}
Run Code Online (Sandbox Code Playgroud)
您需要setEnabled(boolean value)在视图上调用方法.
view.setClickable(false);
view.setEnabled(false);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53780 次 |
| 最近记录: |