1. 程式人生 > >SearchView 的使用,searchViw 的顯示方式,文字改變等監聽的實現

SearchView 的使用,searchViw 的顯示方式,文字改變等監聽的實現

例項效果圖:

在這裡插入圖片描述

主要程式碼:(使用v7 包)

activity_main.xml

        <android.support.v7.widget.SearchView
            android:id="@+id/searchView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:autofillHints="查詢" />

MainActivity.java

	SearchView searchView;
// 獲取搜尋框
	  searchView = findViewById(R.id.searchView);
// 搜尋框的一些方法設定
// 1. 文字事件 {包括提交事件,文字改變事件}
       searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String s) {  // 點選軟體盤搜尋按鈕會彈出 吐司
                Toast.makeText(MainActivity.this, "提交", Toast.LENGTH_SHORT).show();
                return false;
            }
            // 搜尋框文字改變事件
            @Override
            public boolean onQueryTextChange(String s) {
                // 文字內容是空就讓 recyclerView 填充全部資料 // 可以是其他容器 如listView
                if (TextUtils.isEmpty(s)) {  // 文字工具 檢測是否為空,檢測空,是輸入文字改變 並且為空時觸發,剛點選時候雖然為空,但是文字內容沒有改變
                    // 設定 容器 的更新
                }
                return false;
            }
        });
// 2. 設定 hint 文字
	searchView.setQueryHint("匹配任意標題和內容");
// 3. 設定點選 關閉 叉叉 的監聽事件
	searchView.setOnClickListener();
//設定最大寬度
	searchView.setMaxWidth(500);
//設定是否顯示搜尋框展開時的提交按鈕 ,就是一個 > 
	searchView.setSubmitButtonEnabled(true); 

SearchView有三種預設展開搜尋框的設定方式,區別如下:

/*------------------  ------------------*/
//設定搜尋框直接展開顯示。左側有放大鏡(在搜尋框中) 右側有叉叉 可以關閉搜尋框
searchView.setIconified(false);
//設定搜尋框直接展開顯示。左側有放大鏡(在搜尋框外) 右側無叉叉 有輸入內容後有叉叉 不能關閉搜尋框
searchView.setIconifiedByDefault(false);
//設定搜尋框直接展開顯示。左側有無放大鏡(在搜尋框中) 右側無叉叉 有輸入內容後有叉叉 不能關閉搜尋框
searchView.onActionViewExpanded();
總結 ,自定義 搜尋框才是正道