Android TV 焦点控制
16lz
2021-01-23
Android TV 焦点控制
电视上都是通过控件获取焦点来实现点击效果的
android:focusable="true"//布局文件中设置一个控件能否获得焦点android:setFocusableInTouchMode="true"//这个是触摸是否能获得焦点,因为有的TV要求遥控器和触摸都可以用,这时会用到android:focusedByDefault="true"//设置默认焦点 低版本用不了,不过可以用requestFocus()强制获取焦点 这个属性只能在API 26 或者更高版本中使用,如果你的最低版本低于26则会报错android:defaultFocusHighlightEnabled="true"//原生控件获取焦点高亮显示 这个属性也能在API 26 或者更高版本中使用,如果你的最低版本低于26则会报错
意思就是可以获取到焦点,为false则不可获取焦点,
在代码里
btnTest.setFocusable(true);//代码中设置一个控件能否获得焦点btnTest.setFocusableInTouchMode(true);//这个是触摸是否能获得焦点,因为有的TV要求遥控器和触摸都可以用,这时会用到btnTest.setFocusedByDefault(true);//设置默认焦点 低版本用不了,不过可以用requestFocus()强制获取焦点 这个属性只能在API 26 或者更高版本中使用,如果你的最低版本低于26则会报错btnTest.setDefaultFocusHighlightEnabled(true);//原生控件获取焦点高亮显示 这个属性也能在API 26 或者更高版本中使用,如果你的最低版本低于26则会报错
为false则不可获取焦点。
在已知控件ID的情况下我们可以设置上下左右的移动控件,
android:nextFocusUp="@id/tv_test"//当按上键时,下一个获得焦点的控件为tv_test android:nextFocusDown="@id/tv_test"//当按下键时,下一个获得焦点的控件为tv_test android:nextFocusLeft="@id/tv_test"//当按左键时,下一个获得焦点的控件为tv_test android:nextFocusRight="@id/tv_test"//当按右键时,下一个获得焦点的控件为tv_test
代码中:
btnTest.setNextFocusUpId(R.id.tv_test);//当按上键时,下一个获得焦点的控件为tv_test btnTest.setNextFocusDownId(R.id.tv_test);//当按下键时,下一个获得焦点的控件为tv_test btnTest.setNextFocusLeftId(R.id.tv_test);//当按左键时,下一个获得焦点的控件为tv_test btnTest.setNextFocusRightId(R.id.tv_test);//当按右键时,下一个获得焦点的控件为tv_test
btnTest.requestFocus()://强制设置一个焦点到指定的view或它的一个子类,(前提是
完整的Android TV 视频播放器源码
更多相关文章
- Android中以JAR形式封装控件 或者类库
- Android 支持不同(本地化、屏幕、版本)设备
- 【Android开发学习27】界面控件之进度条(ProgressBar)
- Android Edittext焦点处理;
- ArcGIS for Android地图控件的5大常见操作
- TextView 控件使用
- Andrid 控件集合大全
- 系出名门Android(5) - 控件(View)之TextView, Button, ImageButt
- Android ImageView控件的setMaxWidth、setMaxHeight不起作用