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

不积跬步,无以至千里。

         其实,以前我对于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文件目录

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

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

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

          3.打开此styles文件,在其此DeskClock的基类继承了v7包下的AppCompatActivity,因此所有的Activity则会都有同样的styles,以及其对ActionBar的设置,其中对于ActionBar的焦点控制的属性则为如下图中位置。关于android6.0系统源码中出现DeskClock调用v7包中ActionBar其无法用物理按键控制其Tab上焦点的问题_第3张图片

     其TranslucentDecorActivityTheme下的windowActionBar对应的boolean属性由false改为true,就可获得焦点,否则无焦点。

 

 

你可能感兴趣的:(Android,系统应用,DeskClock,Bug,Android,系统,DeskClock,系统应用之时钟)