详解:setEnabled / setClickable / setFocusable 的用法 及 相关性
2016-12-01 17:35
316 查看
setEnabled(boolean bool)
用法:设置当前控件是否被激活,是否可用。
bool为
true 时,表明该控件被激活,控件处于”活动状态“,能够响应或触发各种事件了,比如触摸、点击、按键等;
bool为
false 时,则表明该控件没有被激活 ,控件永远不会”活动“,不管为他设置什么UI
属性,都无效果;
相关:
setEnabled(boolean
bool)就相当于View控件的事件总开关,只有总开关打开了,才能使用其他事件。
------------------------------------------------------------------------------------------------------------------------------------------
setClickable(boolean bool)
用法:设置当前控件是否可被点击。
bool
为
true时,表明控件可以被点击,触发点击事件;
bool
为
false时,则表明控件不可被点击,无法触发任何类型的点击事件。
相关:
A.
“点击事件”的类型,适用于鼠标、键盘按键、遥控器等;
B. setOnClickListener()方法会默认把控件的 setClickable()设置为 true。
------------------------------------------------------------------------------------------------------------------------------------------
setFocusable(boolean bool)
用法:设置当前控件是否 "可以" 获得焦点。
bool
为
true时,表明该控件"可以"
获得焦点;
bool
为
false时,则表明控件不可以获得焦点,
相关:
A. "可以" 获得焦点,就是说具备获得焦点的机会、能力,当有焦点在控件之间移动时,控件就有这个机会、能力得到焦点。但并不是使当前控件立刻获得焦点,要想当前控件立刻获得焦点,需要用 View.requestFocus()方法;
B. 当设备为可触摸操作的设备(如手机,平板等)时,setFocusable(boolean
bool)方法和setClickable(boolean
bool)方法的事件触发,并无直接关联,有无焦点并不影响是否可点击;
C. 而当设备为jin不可触摸操作的设备(如智能电视,VR等需要遥控器/手柄操作)时,有无焦点就直接影响点击事件的定位了,需明确。
相关文章推荐
- 关于DecimalFormat用法详解
- lseek的用法详解
- Linux wget命令用法详解(附实例说明)
- Memset()用法详解(转)
- js中 javascript:void(0) 用法详解
- Mysql中limit的用法详解
- C# ListView用法详解
- php中iconv函数用法详解介绍
- linux curl用法详解
- extern用法详解(转)
- Ext.Net学习笔记05:Ext.Net DirectEvents用法详解
- oracle中的rownum用法详解
- const用法详解
- tracert用法详解
- hibenate中genarator的用法详解
- IOS UIScrollView——用法详解
- struts 中的标签 用法详解
- Java魔法堂:注解用法详解——@Override
- css清除浮动clearfix:after的用法详解
- Math.floor,Math.ceil,Math.rint,Math.round用法详解