TV端-焦点获取简单理解
2018-06-25 本文已影响127人
沫沫么么哒Die
本文只涉及最简单的一些跟焦点有关的知识,包括setClickable、setEnabled、setFocusable、requestFocus 四个控件
一·setClickable
1.设置为true时,表明控件可以点击
2.设置为false时。表明不能点击;点击适用于鼠标,键盘按键,遥控器等
3.SetOnClickListener方法会默认把控件的setClickable设置为true
二·setEnabled 使能控件
1.设置为false,该控件永远不会活动,不管设置为什么属性都无效
2.设置为true,表明激活该控件,控件处于活动状态,能响应事件;比如触摸,点击,按键事件等
3.相当于总开关一样,只有总开关打开,才能使用其他事件
三·setFocusable 使能控件
1.设为true时,具备获得焦点的机会,能力,并不是说立刻获得焦点
四·requestFocus
1.设置是否获得焦点,也就是说请求立刻得到焦点
五· setFocusable和requestFocus的对比
1.焦点获取的区别
setFocusable 是具备获得焦点的能力
requestFocus 是立刻获得焦点
2.使用
setFocusable 当我们要设置某个控件的焦点监听事件时要设置setFocusable为true,否则可能会出现onFocusableChangeListener监听不到的情况
xxx.setFocusable(true);
xxx.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
//获得焦点
} else {
}
}
});
}
requestFocus 一般是用在onKeyDown方法中,用来判断焦点移动后哪一个控件获得焦点
if(this.getCurrentFocus() == xxx){
if(keyCode == KeyEvent.KEYCODE_DPAD_DOWN){
xxx02.requestFocus();
return true;
}
}
以上就是我接触到的最基本的使用,记录一下