首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >setEnabled()和setClickable()有什么区别?

setEnabled()和setClickable()有什么区别?
EN

Stack Overflow用户
提问于 2013-03-25 21:11:35
回答 6查看 75.4K关注 0票数 85

直到现在,当我想要阻止用户按下按钮时,我会设置button.setClickable(false);,并通常将文本更改为某种灰色(让用户知道按钮被禁用)。今天我偶然发现了setEnabled()的属性。

因此,我访问了下面的文档以查看该方法的解释:

代码语言:javascript
复制
setEnabled(boolean enabled)
   Set the enabled state of this view.

这到底是什么意思?启用状态/可点击状态与禁用状态/不可点击状态有什么区别?有人能解释一下我之前做的事情,使用clickable属性和使用setEnabled()属性有什么区别吗?什么时候应该使用?我搜索了Stack Overflow,但找不到任何相关的东西。

EN

回答 6

Stack Overflow用户

发布于 2019-02-01 11:30:02

我在其他地方看不到的一个很大的区别是重叠的观点。带有clickable=true和enabled=false的视图不允许您在其后面按下视图。但是一个带有clickable=false的视图将允许你在它后面按一个视图。

票数 6
EN

Stack Overflow用户

发布于 2016-08-03 18:29:09

因此,基本上一个使能的false不会响应任何响应,而一个在运行时设置的可点击false still响应,相信我,我刚刚试过了。

票数 5
EN

Stack Overflow用户

发布于 2016-08-16 21:27:50

正如Dilip所说,如果在运行时设置,setClickable将不起作用。这里有一个让它工作的诀窍:

代码语言:javascript
复制
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();
  }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15615823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档