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) {
//當得到焦點和失去焦點的時候執行
}
});
[本章完...]