详解:setEnabled / setClickable / setFocusable 的用法 及 相关性


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等需要遥控器/手柄操作)时,有无焦点就直接影响点击事件的定位了,需明确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值