配合listview可以达到搜索显示下拉列表的目的
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<SearchView
android:id="@+id/sv"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</SearchView>
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="300dp"
>
</ListView>
</LinearLayout>
public class MainActivity extends AppCompatActivity {
private ListView listView;
private SearchView searchView;
private final String[] strings = {"aaa","bbb","ccc"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.lv);
searchView = (SearchView) findViewById(R.id.sv);
listView.setAdapter(new ArrayAdapter<String>(this , android.R.layout.simple_dropdown_item_1line , strings));
//listview启动过滤
listView.setTextFilterEnabled(true);
//一开始不显示
listView.setVisibility(View.GONE);
//搜索框不自动缩小为一个搜索图标,而是match_parent
searchView.setIconifiedByDefault(false);
//显示搜索按钮
searchView.setSubmitButtonEnabled(true);
//默认提示文本
searchView.setQueryHint("查找");
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
//单击搜索按钮的监听
@Override
public boolean onQueryTextSubmit(String query) {
Toast.makeText(MainActivity.this, "123", Toast.LENGTH_SHORT).show();
return false;
}
//输入字符的监听
@Override
public boolean onQueryTextChange(String newText) {
if (TextUtils.isEmpty(newText)){
listView.setVisibility(View.GONE);
listView.clearTextFilter();
}
else {
listView.setVisibility(View.VISIBLE);
listView.setFilterText(newText);
}
return true;
}
});
}
}

