SearchView 的使用,searchViw 的顯示方式,文字改變等監聽的實現
阿新 • • 發佈:2018-12-14
例項效果圖:
主要程式碼:(使用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();