原创文章,如有转载,请注明出处:http://blog.csdn.net/myth13141314/article/details/61191232
先上效果图:
在需要的地方生成对象:
listPopupWindow =
new ListPopupWindow(MainActivity.
this);
数据源可以是简单的String数组,也可以自定义Adapter;
private class SuggestArrayAdapter extends BaseAdapter {
...
...
}
listPopupWindow.setAdapter(suggestArrayAdapter);
可以设置锚点,与一个控件绑在一起,比如toolbar;
listPopupWindow
.setAnchorView(toolbar)
高度可以定制,直接调用接口:setHeight(int height);
listPopupWindow
.setHeight(AppUtil
.getSreenHeight(MainActivity
.this)/
3)
可以设置点击监听
listPopupWindow.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
listPopupWindow.dismiss();
...
}
});
判断ListPopupWindow是否处于显示状态
listPopupWindow
.isShowing()
当然还有显示和消失
listPopupWindow.
show();
listPopupWindow.dismiss();
布局什么的就不说了,首先是在ToolBar的menu文件中添加SearchView
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_search"
android:title="@string/search_search"
android:icon="@mipmap/nav_search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always|collapseActionView"/>
</menu>
然后再MainActivity中初始化ToolBar的menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main_toolbar, menu);
return true;
}
在onPrepareOptionsMenu方法中获取searchView,进行相关的处理
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
final MenuItem searchMenuItem = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchMenuItem);
searchView.setQueryHint(getString(R.string.search_hint_text));
searchView.setOnQueryTextListener(
new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
}
@Override
public boolean onQueryTextChange(String newText) {
}
});
return super.onPrepareOptionsMenu(menu);
searchView.setOnQueryTextFocusChangeListener(
new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v,
boolean hasFocus) {
Log.e(
"searchview QueryTextFocusChange-->" + hasFocus);
}
});
}
以上只是简单的介绍了SearchView的用法,详细的可以参考官网SearchView
欢迎关注我的公众号,和我一起每天进步一点点!
转载请注明原文地址: https://ju.6miu.com/read-17864.html