TV端-焦点获取简单理解

本文只涉及最简单的一些跟焦点有关的知识,包括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;
      }
}

以上就是我接触到的最基本的使用,记录一下

你可能感兴趣的:(TV端-焦点获取简单理解)