SearchView使用

SearchView這個控件是經常用到的,用法也比較簡單。

最簡單的SearchView代碼如下:

<SearchView
    android:id="@+id/searchview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#AEDEE6"/>

如圖:

爲了方便顯示,我添加了背景色,上圖中,SearchView的起初只有一個搜索小圖標,點擊左側的搜索小圖標之後開始顯示編輯框,編輯框右邊還有一個叉,輸入任意文本,點擊右側的叉,刪除文本,再次點擊右側的叉,SearchView恢復初始狀態。

(1)iconifiedByDefault的使用

iconifiedByDefault值默認是true,當設置爲false時,SearchView的初始狀態變爲:

代碼如下:

    android:iconifiedByDefault="false"

    searchview.setIconifiedByDefault(false);
(2)imeOptions屬性

imeOptions屬性是EditText特有的屬性,查看源碼可以知道,SearchView中顯示的編輯框其實就是SearchAutoComplete,SearchAutoComplete是EditText的間接子類,SearchAutoComplete的imeOptions默認值是actionSearch

(3)queryHint屬性

queryHint:設置提示文字

代碼實現如下:

    android:queryHint="提示文字"

    searchview.setQueryHint("提示文字");
(4)監聽
  • 搜索編輯框進入編輯狀態時的監聽

      searchview.setOnSearchClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              //當點擊搜索編輯框的時候執行,剛進入時默認點擊搜索編輯框
          }
      });
    
  • 點擊軟鍵盤搜索按鈕時的監聽以及搜索編輯框文本變化時的監聽

      searchview.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
          @Override
          public boolean onQueryTextSubmit(String s) {
              //點擊軟鍵盤搜索的時候執行
              return false;
          }
    
          @Override
          public boolean onQueryTextChange(String s) {
              //搜索框文本發生改變的時候執行
              return false;
          }
      });
    

*編輯框獲取焦點和失去焦點時的監聽

    searchview.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            //當得到焦點和失去焦點的時候執行
        }
    });

[本章完...]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章