关于Toolbar按键焦点的问题

最近在做Android 7.0 的开发,源码中许多模块都进行了更新,用上了一些新的控件。由于现在有一个项目是有按键的,在设置模块原来的actionbar都替换成了toolbar,这就导致了一个问题,无法通过按键将焦点移动到toolbar上,这里就来分享一下如何解决这个问题。

首先找到设置界面上的toolbar在什么地方定义。在Android 7.0 中,SettingsActivity是继承于SettingsDrawerActivity,而SettingsDrawerActivity在settingslib中定义,位置如下:

android\frameworks\base\packages\SettingsLib

在这个类中有一个布局:R.layout.settings_with_drawer,toolbar就是在这里面定义的,如下:


可以看到他有一个style,在framework中toolbarStyle指向的是@style/Widget.Toolbar,这个style如下:


可见最后一行有一个touchscreenBlocksFocus属性,就是当他为true时,阻止通过按键将焦点移上去。这里我们直接改为false,重新编译即可。

你可能感兴趣的:(关于Toolbar按键焦点的问题)