OK
SearchView的理解
默认操作
点击搜索按钮,展开搜索框,点击软键盘搜索按钮即可。
使用步骤
1.在xml中使用android.support.v7.widget.SearchView标签。
2.在java中使用setOnQueryTextListener方法即可。重写onQueryTextSubmit、onQueryTextChange两个方法。
XML常用属性
1 2 3 4 5 6 7 8 9 10
| android:iconifiedByDefault
android:imeOptions
app:queryHint
app:queryBackground="@null"
app:searchIcon="";
|
JAVA中常用的方法
1 2 3 4 5 6 7 8 9 10 11 12 13
| setIconifiedByDefault(boolean iconified)
setOnQueryTextListener(SearchView,OnQueryTextListener listener) setSubmitButtonEnabled(boolean enabled)
setQueryHint(CharSequence hint) onQueryTextSubmit是点击搜索后的Listener 返回true,键盘不消失,返回false,键盘消失。 onQueryTextChange是搜索框内容变化的Listener
onActionViewExpanded
|
searchView空查询
searchView不能进行空查询
解决方法
可以通过onQueryTextChange 来实现text为空时,自动查询
1 2 3 4 5 6 7 8 9
| @Override public boolean onQueryTextChange(String newText) { if (TextUtils.isEmpty(newText)) { keyWord = newText; pageNo = 1; refreshLayout.refresh(); } return false; }
|
示例 - 修改SearchView样式
技巧
查看SearchView的布局文件,点击进去是R文件,无法查看布局内容。
解决方法
在AS的全局搜索框中搜索该布局即可查看该布局内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
SearchView.SearchAutoComplete searchText = (SearchView.SearchAutoComplete) searchView.findViewById(R.id.search_src_text);
searchText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp.gravity = Gravity.CENTER_VERTICAL; searchText.setLayoutParams(lp);
searchText.setTextColor(ContextCompat.getColor(this, R.color.common_text_gray)); searchText.setHintTextColor(ContextCompat.getColor(this, R.color.common_text_gray));
ImageView searchButton = (ImageView) searchView.findViewById(R.id.search_mag_icon);
LinearLayout.LayoutParams lpimg = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); lpimg.gravity = Gravity.CENTER_VERTICAL; searchButton.setLayoutParams(lpimg); searchButton.setImageResource(R.drawable.goods_search_icon);
|
1 2 3 4 5 6 7 8 9 10 11 12
| <android.support.v7.widget.SearchView android:id="@+id/searchView" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@null" app:closeIcon="@null" app:defaultQueryHint="请输入搜索内容" app:iconifiedByDefault="false" app:queryBackground="@null" app:queryHint="请输入搜索内容" />
|