先来看上面这张图:
实现的布局效果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事件能捕获到