美文网首页
关于Toolbar按键焦点的问题

关于Toolbar按键焦点的问题

作者: 留给时光吧 | 来源:发表于2017-07-08 15:16 被阅读0次

最近在做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就是在这里面定义的,如下:

<Toolbar
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/action_bar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:navigationContentDescription="@*android:string/action_bar_up_description"
                android:theme="?android:attr/actionBarTheme"
                style="?android:attr/toolbarStyle"
                android:background="?android:attr/colorPrimary" />

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

<style name="Widget.Toolbar">
        <item name="titleTextAppearance">@style/TextAppearance.Widget.Toolbar.Title</item>
        <item name="subtitleTextAppearance">@style/TextAppearance.Widget.Toolbar.Subtitle</item>
        <item name="minHeight">?attr/actionBarSize</item>
        <item name="titleMargin">4dp</item>
        <item name="maxButtonHeight">@dimen/action_bar_default_height_material</item>
        <item name="buttonGravity">top</item>
        <item name="navigationButtonStyle">@style/Widget.Toolbar.Button.Navigation</item>
        <item name="collapseIcon">?attr/homeAsUpIndicator</item>
        <item name="collapseContentDescription">@string/toolbar_collapse_description</item>
        <item name="contentInsetStart">16dp</item>
        <item name="contentInsetStartWithNavigation">@dimen/action_bar_content_inset_with_nav</item>
        <item name="touchscreenBlocksFocus">true</item>
    </style>

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

相关文章

网友评论

      本文标题:关于Toolbar按键焦点的问题

      本文链接:https://www.haomeiwen.com/subject/ibtjhxtx.html