您的位置:首页 > 移动开发 > Android开发

关于android6.0系统源码中出现DeskClock调用v7包中ActionBar其无法用物理按键控制其Tab上焦点的问题

2016-08-25 16:53 447 查看
       共勉----不积跬步,无以至千里。

         其实,以前我对于ActionBar操作知道的寥寥无几,但是现在管理的模块时DeskClock,其中在版本升级由以前的android4.4.2升级到android6.0,对于主界面的显示为闹钟、时钟、计时器、倒计时、世界时钟,而其显示的其主体结构的利用的ActionBar+ViewPager+Fragment.而其在版本升级前后其中的ActionBar的调用有了改动。android4.4.2其为adroid自带的frameworks中ActionBar,而到了android6.0其高通源码中调用的是v7包下的ActionBar了。

        而在版本升级的过程中因为吾的模块有物理按键对控件焦点的操作,而通过升级版本merge代码以后结果发现ActionBar上的Tab选项卡上不能如上个版本一样获得焦点了,因此通过询问组长还有一切网上的朋友问题还是没有解决,网上的资料也没能真正的对应解决,因为现在大部分都是触摸屏操作的智能手机,绝大部分android开发人员不会接触到物理按键对焦点的操作问题,其有可能遇到同样此类问题的兄台,也许同为rom定制开发的小伙伴吧。因此我把这次自己找了2个月的bug——v7包下ActionBar物理按键操作Tab上的焦点问题,为大家指出在哪个位置可以对其进行合适的修改,接下来废话不说,直接上"硬菜"!!!

        1.此为对应的DeskClock文件目录






              2.找到对应的values文件夹下的styles文件






          3.打开此styles文件,在其此DeskClock的基类继承了v7包下的AppCompatActivity,因此所有的Activity则会都有同样的styles,以及其对ActionBar的设置,其中对于ActionBar的焦点控制的属性则为如下图中位置。



     其TranslucentDecorActivityTheme下的windowActionBar对应的boolean属性由false改为true,就可获得焦点,否则无焦点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐