1. 程式人生 > >Android7.1.1之去掉workspace頂部的快速搜尋條Qsb

Android7.1.1之去掉workspace頂部的快速搜尋條Qsb

Android7.1.1裡的Qsb是Quick search bar的縮寫,位於workspace第一屏的頂部,主要是開啟google瀏覽器搜尋,但是現在國內的android手機不支援使用google瀏覽器或者對當下許多消費者來說這個控制元件是沒什麼大用的,而且主要是當前專案的需求要的是直接顯示應用列表,去掉主介面,所以去掉這個Qsb勢在必行。

這裡寫圖片描述

Layout Inspector

我們如何找到需要修改的位置呢?可能很多人都知道使用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中的內容

這裡寫圖片描述

修改

找準位置,開始修改。
註釋掉qsb_default_view.xml中的整個LinearLayout,之後QsbContainerView類中會出現錯誤,主要是跟qsb_default_view.xml裡的兩個資源id有關,註釋掉關於R.id.btn_qsb_search和R.id.btn_qsb_setup的相關程式碼。
執行之:

這裡寫圖片描述

雖然Qsb不再顯示在workspace上,但長按workspace上的任意圖示會看見最開始放Qsb的位置依然有一個灰色背景塊存在,且不能拖進任何圖示到該位置,如下圖:

這裡寫圖片描述

所以我們還需要找到設定這個灰色背景塊的地方
針對qsb_blocker_view.xml、qsb_container.xml、qsb_default_view.xml這三個資原始檔Find Usages一下,發現Workspace.java這個類中也有引用到,找到該位置,如下圖:

這裡寫圖片描述

經分析,註釋掉一下程式碼塊即可去掉灰色背景塊,並能拖動或新增任何icon到該位置

這裡寫圖片描述

執行之:

這裡寫圖片描述