Android TV 应用中焦点的简单介绍

Android  小知识  2021年12月9日 pm7:47发布3年前 (2021)更新 城堡大人
92 0 0

前言

Android TV是通过遥控器控制的,没有触摸事件的,而是处理

KeyEvent.KEYCODE_DPAD_UP
KeyEvent.KEYCODE_DPAD_DOWN
KeyEvent.KEYCODE_DPAD_CENTER
KeyEvent.KEYCODE_DPAD_LEFT
KeyEvent.KEYCODE_DPAD_RIGHT

等按键值。

然后就涉及到一些按键的焦点状态问题,这里简单的记录一下,方便自己查阅。

正文

这些焦点的状态可以用Java代码控制,也可以通过配置xml来控制。

focusable

是否要获取到焦点

android:focusable="true|false"

对应的代码

view.setFocusable(true|false);
setFocusableInTouchMode

是否触摸后获取到焦点

android:setFocusableInTouchMode="true|false"

对应的代码

view.setFocusableInTouchMode(true|false);

默认是false,也就不设置是,当用户点击是不会有聚焦被点击的控件的。

focusedByDefault

看文字意思是默认获取焦点的配置

android:focusedByDefault="true|false"

对应的代码

view.setFocusedByDefault(true|false)

当这个属性我项目中配置后没有效果。(后续跟进)

因此只要代码中通过设置requestFocus()强制获取焦点。

defaultFocusHighlightEnabled
android:defaultFocusHighlightEnabled="true|false"

对应的代码

view.setDefaultFocusHighlightEnabled(true|false);

原生控件获取焦点高亮显示。(项目中没用过这个)

控制焦点移动方向
nextFocusDown
nextFocusLeft
nextFocusRight
nextFocusUp

具体这里就不解释了。

setOnFocusChangeListener

这个是View监听焦点丢失和获取变化,然后做一定的处理。

参考文章

  1. Android TV开发过程及焦点问题处理
  2. Android TV 焦点控制
  3. 从源码出发浅析 Android TV 的焦点移动原理 (上篇)

 历史上的今天

  1. 2023: Service的Context介绍(0条评论)
  2. 2022: Android设置语言偏好后应用没有获取对设置的语言(0条评论)
  3. 2020: [摘]Android 系统重启原因分析(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

[摘]对于Fragment的一些理解

Fragment为何要用Fragment是Android 3.0 (Honeycomb)被引入的。主要目的是为了给大屏幕(如平板电脑)上更加动态和灵活的UI设计提供支持。由于平板电脑的屏幕比手机的屏幕大很多,因此可用于组合和交换的UI组件的空间更大,利用Fragment实现此类设计的时,就无需管...

LocalServices和SystemService等简介

前言在上次简单介绍SystemServer(《SystenServer的启动之一》)时,里面涉及几个比较重要的类SystemServiceManager,SystemService和LocalServices,因此今天就单独介绍一下。正文涉及文件frameworks\base\servic...

Android图片倒影记录

前言Android对图片进行倒影处理。也就是对底部进行一定高度的翻转。具体效果如图正文直接上代码<!-- layout_height= 倒影高度+分割线高度+图片高度,否则显示不全 --><com.biumall.reflectview.view.Reflect...

罗伯特·弗罗斯特:未选择的路

黄色的树林里分出两条路,可惜我不能同时去涉足,我在那路口久久伫立,我向着一条路极目望去,直到它消失在丛林深处。 但我却选了另外一条路,它荒草萋萋,十分幽寂,啊,留下一条路等改日再见! 但我知道路径延绵无尽头,恐怕我难以再回返。 也许多少年后在某...

Android focus获取状态简介

前言简单记录一下Android中View的focus状态获取。正文隐藏内容!付费阅读后才能查看!¥1 ¥3多个隐藏块只需支付一次付费阅读参考文章《Android中走马灯(或跑马灯)以及相关问题总结》

Android 中Bn和Bp介绍

前言阅读Android源码时总是遇到Bnxx和Bpxx等类,老是对不上号,容易迷糊,因此这里记录一下,方便自己查阅。正文BP(binder proxy)和BN(binder native)是通过binder来通信的,Bp端可以通过BinderProxy的transact()方法与Bn端发送请...