我注意到android中存在奇怪的行为。
我有一个包含列表视图和搜索栏的视图。
当搜索栏被聚焦并且在显示键盘之后,列表视图适配器中的项目将调用getView,如果搜索栏失去焦点也会再次发生,并且在键盘被隐藏之前,它会导致一些滞后性能,尤其是在隐藏键盘之前,因为它会等到所有项目都刷新。
有没有解决方法?
答案 0 :(得分:1)
只需在Android Manifest文件中声明键盘配置即可。在清单中定义Activity的位置,只需在其中添加一行,如下所示:
android:configChanges="keyboardHidden|orientation"
答案 1 :(得分:0)
在您的活动中,只需将
放在oncreate()方法中getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED);
然后,在searchView.setOnQueryTextListener-> public boolean onQueryTextChange中,如果输入的文本不在您的存储列表中,则将其放在行
listView.setVisibility(View.GONE);
//to hide the keyboard
methodManager = (InputMethodManager) getSystemService(getApplication().INPUT_METHOD_SERVICE);
methodManager.hideSoftInputFromWindow(searchView.getWindowToken(),0);
如果出现文本,
listView.setVisibility(View.VISIBLE);
并在任何循环结束后重置列表适配器...
listAdapter.notifyDataSetChanged();
希望您申请得很整齐。