天天看點

Android O Settings源碼流程分析(搜尋欄篇(上))Android O Settings 

Android O Settings 

  • 靜态界面篇
  • 界面渲染篇
  • 資料加載篇之一級菜單
  • 資料加載篇之二級菜單
  • 資料加載篇之擷取及修改預設設定屬性值
  • 搜尋欄篇

Settings 搜尋欄

  • 上篇——界面
  • 中篇——實作原理
  • 下篇——搜尋及頁面跳轉

上篇——界面

首先看一下搜尋框的布局實作;

位于Settings主界面布局檔案settings_main_dashboard.xml中:

Android O Settings源碼流程分析(搜尋欄篇(上))Android O Settings 

從布局中并不能看出搜尋欄是怎麼展現出來的;

接着分析SettingsActivity.java——>onCreate():

Android O Settings源碼流程分析(搜尋欄篇(上))Android O Settings 

這段代碼的含義就是當判斷目前界面為Settings主界面時,就會将主界面最上端标題欄替換為search_edittext.xml的界面顯示;

Android O Settings源碼流程分析(搜尋欄篇(上))Android O Settings 

這個才是真正的搜尋欄。

毫無疑問,會給整個搜尋欄設定監聽事件:

Android O Settings源碼流程分析(搜尋欄篇(上))Android O Settings 

當點選搜尋欄時會跳轉到SearchActivity.java:

Android O Settings源碼流程分析(搜尋欄篇(上))Android O Settings 

看它所加載的布局search_main.xml:

Android O Settings源碼流程分析(搜尋欄篇(上))Android O Settings 

僅僅有一個FrameLayout,不包含任何内容;

來到SearchFragment.java:

Android O Settings源碼流程分析(搜尋欄篇(上))Android O Settings 

接下來看它加載的布局search_panel.xml:

Android O Settings源碼流程分析(搜尋欄篇(上))Android O Settings 

         ……

Android O Settings源碼流程分析(搜尋欄篇(上))Android O Settings 

          ……

Android O Settings源碼流程分析(搜尋欄篇(上))Android O Settings 

          ……

Android O Settings源碼流程分析(搜尋欄篇(上))Android O Settings 

此界面所展示的頂部是一個SearchView搜尋框,而它的下面則是一個RecyclerView用于展示搜尋候選項;

綜上意為:當使用者點選主界面的搜尋欄時會跳轉到一個新的Fragment展示出一個頂部搜尋欄,下面候選項清單的新界面。

關于界面顯示已經分析完畢;

點選進入下篇——實作原理