我有一个在某些情况下View.INVISIBLE
的视图组。在这种状态下,我希望视图组或其子视图不响应任何点击事件。
根据 android 中View.INVISIBLE
的默认实现,即使视图组的可见性不可见,视图组内的子视图仍然可以单击。我知道我可以将可见性设置为View.GONE
但我不希望删除整个视图组。
我尝试在视图组上setClickable
设置为true
,但它不起作用,子视图仍然响应点击。我不想遍历视图组中的所有视图并单独禁用它们,因为这是我必须经常做的事情。
是否有更好的解决方案来防止视图组中的所有子视图接收点击事件?
也许你可以试试'setOnClickListener'。
viewgroup.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true; // return true can intercept click event go down
}
});
并且您希望接收视图组点击事件。
viewgroup.setOnTouchListener(null)
你试过setEnabled(false)
吗?
如果这不起作用,您可以像这样将所有视图子项设置为禁用:
LinearLayout layout = (LinearLayout) findViewById(R.id.my_layout);
for (int i = 0; i < layout.getChildCount(); i++) {
View child = layout.getChildAt(i);
child.setEnabled(false);
}