TV焦点实战总结

建议 : 为了适配尽可能多的电视设备 , 推荐如下做法 :

① 设置可获取焦点 : 给 需要获取焦点的组件 , 统一添加 android:focusable=“true” 属性 ;

② 设置不可获取焦点 : 凡是 不需要获取焦点的组件 , 统一添加 android:focusable=“false” 属性 ;

③ 设置组件兼容 : 凡是涉及到 父容器 与 子组件 之间的焦点获取的情况 , 统一使用
android:descendantFocusability 属性 ;

参考学习资料:

https://blog.csdn.net/qq_44203816/article/details/131207841
http://www.taodudu.cc/news/show-3512378.html?action=onClick
https://www.cnblogs.com/cps666/p/17339599.html

默认焦点: https://blog.csdn.net/johnWcheung/article/details/76922352
焦点乱跑: https://www.jianshu.com/p/5524a5c9311f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
按键事件分发: https://www.codetd.com/article/15527758
获焦后,背景出现重叠问题: https://blog.csdn.net/snail201211/article/details/84990892

这个原因是动态设置背景的时机在判断默认背景之后,所以导致先绘制了一个默认背景,然后又绘制了自定义的背景,解决方案就是xml布局里面禁用默认背景:
android:defaultFocusHighlightEnabled=“false”

VerticalGridView第一行获取焦点后,再次按向上键,上方的控件获取不到焦点解决方案: https://blog.csdn.net/dongdengke123789/article/details/54427079

AndroidTV中使用RecyclerView的notifyDataSetChanged()方法刷新列表后会造成焦点缺失,解决办法是改用notifyItemRangeChanged(0,5)方法刷新所有数据,0代表position(recyclerview的开始位置),5代表刷新后item的数量。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值