android gridview 焦点控制,android 中的一些焦点处理(listView GridView 抢焦点 与focus技巧)...

1、概述

在Android 事件传递与焦点处理(tv) 这篇中有描述android 的事件传递与拦截分发的流程

这篇描述一下具体的一些焦点处理

先再提一下最常见的ViewGroup中的三种焦点处理方式,后续详细描述

FOCUS_BEFORE_DESCENDANTS 0x20000 默认

ViewGroup本身先对焦点进行处理,如果没有处理则分发给child View进行处理

FOCUS_AFTER_DESCENDANTS 0x40000

先分发给Child View进行处理,如果所有的Child View都没有处理,则自己再处理

FOCUS_BLOCK_DESCENDANTS 0x60000

ViewGroup本身进行处理,不管是否处理成功,都不会分发给ChildView进行处理

2、listView gridView 抢焦点 问题

2.1、 最常见的 item抢焦点

当item有焦点时,item上的button等子控件获取不到焦点;

当子控件有焦点时,item无焦点无法响应onItemClick事件

解决:(原因后面分析)

把焦点处理方式设成 FOCUS_BLOCK_DESCENDANTS

可以在xml中设置 也可以在代码里设置

2.2、listView GridView 在界面中抢了焦点

比如一个界面中有button gridView 还有其他的一些界面元素,一打开第一个焦点就落在gridView的item0 上

之所以用gridView说事,是实际中自己在写tv 界面时他老抢,listView与gridView类比

后面是用listView 或者 gridVi

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值