android 自定义view 焦点问题


先来看上面这张图:

实现的布局效果1,2,3为顶栏的导航栏模块,下面4为自定义view的内容,自定义view里里面有自己画的个个内容(图片,文字类等)

自定义view的效果是:按上下左右键,画出各个图片的焦点框

1.遇到的问题:

当按下左右键时,自定义view里的焦点框正常画出;但是当按上键时,这个焦点条到1组件上去了

分析:自定义view是一个组件,只有本身一个焦点,当按下左右键时,下面没有其他组件,所以焦点还是落在4自定义view中
当按上键时,焦点跑到1组件上去了

下面给出一个解决方案,防止按上键跑到1组件上去:

在自定义view中的onKeyDown中return true;不能return false   
return false表示:表示自己不处理,交给下一节点的onkeyDown处理   
return true表示:表示自己处理,不给下一节点的onkeyDown处理       

OnkeyDown的流程:
当前焦点所在的view--->下一级viewd的onkeydown-->activity中的onKeydown

2.当把自定义view放到viewGroup中时,会略过viewGroup中的按键事件,直接到activity中的onKeyDown,此种原因不甚明了,被这个东东绊了很久╮(╯▽╰)╭
但是当这个viewGroup中没有控件时,焦点在其上时,其中onkeydown事件能捕获到


转载于:https://my.oschina.net/blackylin/blog/117498

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值