您的位置:首页 > 产品设计 > UI/UE

详解: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等需要遥控器/手柄操作)时,有无焦点就直接影响点击事件的定位了,需明确。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息