Android7.1.1之去掉workspace顶部的快速搜索条Qsb

Android7.1.1里的Qsb是Quick search bar的缩写,位于workspace第一屏的顶部,主要是打开google浏览器搜索,可是如今国内的android手机不支持使用google浏览器或者对当下许多消费者来讲这个控件是没什么大用的,并且主要是当前项目的需求要的是直接显示应用列表,去掉主界面,因此去掉这个Qsb势在必行。java

这里写图片描述

Layout Inspectorandroid

咱们如何找到须要修改的位置呢?可能不少人都知道使用Hierarchyviewer这个UI优化工具看控件id进而找到控件所在位置,可是Android studio2.2以后推出了一个新的Android布局分析工具Layout Inspector,它位于Tools/Android/菜单目录下,找到并打开它,以下浏览器

这里写图片描述

这里写图片描述

开始-find工具

从上面的布局分析工具可知该控件来自于自定义View类QsbBlockerView和QsbContainerView
接下来有两种方式来找哪些资源文件用到了这两个类
法一:com.android.launcher3找到这两个类,分别右击鼠标选择Find Usages,就可看到两个资源文件qsb_blocker_view.xml和qsb_container.xml布局

这里写图片描述

这里写图片描述

法二:Git Bash窗口,根据命令grep -nr QsbBlockerView * 和 grep -nr QsbContainerView * 也可得优化

注意在QsbContainerView类中,有个getDefaultView()方法不容忽视,里面用到了qsb_default_view这个资源文件,因此qsb_container.xml这个容器实际的内容是qsb_default_view.xml中的内容ui

这里写图片描述

修改google

找准位置,开始修改。
注释掉qsb_default_view.xml中的整个LinearLayout,以后QsbContainerView类中会出现错误,主要是跟qsb_default_view.xml里的两个资源id有关,注释掉关于R.id.btn_qsb_search和R.id.btn_qsb_setup的相关代码。
运行之:spa

这里写图片描述

虽然Qsb再也不显示在workspace上,但长按workspace上的任意图标会看见最开始放Qsb的位置依然有一个灰色背景块存在,且不能拖进任何图标到该位置,以下图:xml

这里写图片描述

因此咱们还须要找到设置这个灰色背景块的地方
针对qsb_blocker_view.xml、qsb_container.xml、qsb_default_view.xml这三个资源文件Find Usages一下,发现Workspace.java这个类中也有引用到,找到该位置,以下图:

这里写图片描述

经分析,注释掉一下代码块便可去掉灰色背景块,并能拖动或添加任何icon到该位置

这里写图片描述

运行之:

这里写图片描述

相关文章
相关标签/搜索