【发布时间】:2017-12-04 19:17:48
【问题描述】:
我有一个带有 searchView 图标的 actionBar。我单击 searchView 图标和 softInputMode 键盘出现,我的 ListView 出现用于搜索。但是,当您关闭 searchView 时,searchView 会关闭,但是当 searchView 关闭时,我无法让 ListView 也关闭。
这是我在 activity_maps.xml 中的 ListView 代码
<ListView
android:id="@+id/list"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="#ffffff"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
tools:layout_editor_absoluteX="0dp"
/>
MapsActivity.java
ArrayAdapter<String> adapter;
@Override
public boolean onCreateOptionsMenu(final Menu menu){
final ListView lv = (ListView) findViewById(R.id.list);
ArrayList<String> arrayList = new ArrayList<>();
arrayList.addAll(Arrays.asList(getResources().getStringArray(R.array.array_states_trial)));
adapter = new ArrayAdapter<>(MapsActivity.this, android.R.layout.simple_list_item_1, arrayList);
lv.setAdapter(adapter);
lv.setVisibility(View.INVISIBLE);
所以最初当 MapsActivity.java 加载时,我不希望 ListView 立即显示。
searchView.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
lv.setVisibility(View.VISIBLE);
}
});
我希望在单击打开 searchView 并弹出键盘时显示 listView。
searchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
lv.setVisibility(View.INVISIBLE);
return false;
}
});
在上面的代码中,我希望 listView 关闭、消失、不可见,但它没有。
顺便说一句,我指的是关闭 searchView 附带的 actionBar 中的“返回”按钮。
当 searchView 和键盘关闭时,我希望 ListView 也关闭,但由于某种原因无法识别代码并且 listView 永远不会关闭。
如何关闭 ListView?
【问题讨论】:
-
你确定onClose函数返回false吗?
-
false,true,我都试过了,结果一样。
标签: android listview listener searchview