1. 程式人生 > >Android自定義View:你需要一個簡單好用、含歷史搜尋記錄的搜尋框嗎?

Android自定義View:你需要一個簡單好用、含歷史搜尋記錄的搜尋框嗎?

前言

  • Android開發中,類似下圖的搜尋功能非常常見

搜尋功能

  • 今天,我將帶來一款 封裝了 歷史搜尋記錄功能 & 樣式Android 自定義搜尋框 開源庫,希望你們會喜歡。

示意圖

目錄

示意圖

1. 簡介

一款封裝了 歷史搜尋記錄功能 & 樣式Android自定義搜尋框

示意圖

2. 功能介紹

2.1 需求場景

  • 在開始coding前, 理解好使用者的需求場景 有助於我們更好地設計 & 實現功能
  • 需求場景如下

示意圖

2.2 功能需求

  • 業務流程圖
    根據場景,梳理出來的功能業務流程圖如下:

示意圖

  • 功能列表
    根據功能的業務流程圖,得出功能需求如下

示意圖

  • 功能原型

示意圖

2.3 功能示意

示意圖

3. 特點

3.1 功能實用

  • 該搜尋框開源庫具備除了歷史搜尋記錄功能外,還具備一般的搜尋框功能(如一鍵清空搜尋框內容等等)
  • 封裝了 常見的搜尋框樣式(如左側圖示、返回按鍵等等),使用起來更加方便

3.2 使用簡單

僅需要簡單的xml屬性配置

下面1節會詳細介紹其使用方法

3.3 二次開發成本低

所以,在其上做二次開發 & 定製化成本非常低。

4. 具體使用

步驟1:匯入控制元件庫

主要有 Gradle & Maven 2種方式:

  • 方式1:Gradle
    引入依賴
    build.Gradle
dependencies {
    compile 'com.carson_ho:SearchLayout:1.0.1'
}
  • 方式2:Maven引入依賴
    pom.xml
<dependency>
  <groupId>com.carson_ho</groupId>
  <artifactId>SearchLayout</artifactId>
  <version>1.0.1</version>
  <type>pom</type>
</dependency
>

步驟2:設定搜尋框樣式

  • 具體屬性設定

示意圖

  • 使用示例
    XML檔案中進行設定
    activity_main.xml
<scut.carson_ho.searchview.SearchView
        android:id="@+id/search_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:textSizeSearch="5dp"
        app:textColorSearch="#3F51B5"
        app:textHintSearch="輸入查詢關鍵字"
        app:searchBlockHeight="150"
        app:searchBlockColor="#ffffff"
        />

步驟3:設定點選搜尋按鍵 & 返回按鍵後的操作

MainActivity.java

// 1. 初始化搜尋框變數
    private SearchView searchView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 2. 繫結檢視
        setContentView(R.layout.activity_search);

        // 3. 繫結元件
        searchView = (SearchView) findViewById(R.id.search_view);

        // 4. 設定點選搜尋按鍵後的操作(通過回撥介面)
        // 引數 = 搜尋框輸入的內容
        searchView.setOnClickSearch(new ICallBack() {
            @Override
            public void SearchAciton(String string) {
                System.out.println("我收到了" + string);
            }
        });

        // 5. 設定點選返回按鍵後的操作(通過回撥介面)
        searchView.setOnClickBack(new bCallBack() {
            @Override
            public void BackAciton() {
                finish();
            }
        });
    }
}

5. 完整Demo地址

示意圖

6. 原始碼解析

7. 貢獻程式碼

  • 希望你們能和我一起完善這款簡單 & 好用的SearchView控制元件,具體請看:貢獻說明
  • 關於該開源專案的意見 & 建議可在Issue上提出。歡迎 Star

8. 總結

  • 相信你一定會喜歡上 這款簡單 & 好用的SearchView控制元件

    已在Github上開源:SearchView,歡迎 Star

  • 下一篇文章我將繼續進行一些有趣的自定義View例項講解,有興趣可以繼續關注Carson_Ho的安卓開發筆記

請幫頂 或 評論點贊!因為你的鼓勵是我寫作的最大動力!