直到现在,当我想要阻止用户按下按钮时,我会设置button.setClickable(false);
,并通常将文本更改为某种灰色(让用户知道按钮被禁用)。今天我偶然发现了setEnabled()
的属性。
因此,我访问了下面的文档以查看该方法的解释:
setEnabled(boolean enabled)
Set the enabled state of this view.
这到底是什么意思?启用状态/可点击状态与禁用状态/不可点击状态有什么区别?有人能解释一下我之前做的事情,使用clickable属性和使用setEnabled()
属性有什么区别吗?什么时候应该使用?我搜索了Stack Overflow,但找不到任何相关的东西。
发布于 2019-02-01 11:30:02
我在其他地方看不到的一个很大的区别是重叠的观点。带有clickable=true和enabled=false的视图不允许您在其后面按下视图。但是一个带有clickable=false的视图将允许你在它后面按一个视图。
发布于 2016-08-03 18:29:09
因此,基本上一个使能的false不会响应任何响应,而一个在运行时设置的可点击false still响应,相信我,我刚刚试过了。
发布于 2016-08-16 21:27:50
正如Dilip所说,如果在运行时设置,setClickable将不起作用。这里有一个让它工作的诀窍:
ToggleButton toggle = ...
toggle.setOnTouchListener(new ToggleButton.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// If true is returned, the event is eated by the TouchListener
return !v.isClickable();
}
});
https://stackoverflow.com/questions/15615823
复制相似问题