【发布时间】:2016-10-24 21:14:30
【问题描述】:
我试图解决这个问题将近一周,但我仍然不知道为什么会发生这种情况。我有一个带有 OnQueryTextListener() 的 Searchview:
public boolean onQueryTextChange(String newText) {
if(newText.length()==0) {
if(!(getSupportFragmentManager().findFragmentById(R.id.routesFragment) instanceof Fragment_Search)) {
fragment_search = new Fragment_Search();
replaceFragment(fragment_search);
}
}
if (newText.length()>0){
final DatabaseAccess databaseAccess = DatabaseAccess.getInstance(getApplicationContext());
databaseAccess.open();
ArrayList<Route_Common> list = databaseAccess.searchInDB(newText);
databaseAccess.close();
fragment_search.listChanged(list);
}
return false;
}
因此,当搜索视图展开时,我将当前片段替换为特殊的 Search_fragment。
public void onBackPressed() {
if (!searchView.isIconified()) {
searchView.setIconified(true);
onBackPressed();
}
super.onBackPressed();
drawerToggle.setDrawerIndicatorEnabled(true);
}
但如果我想隐藏我的搜索视图并返回上一个片段,我需要按两次 - 第一次是折叠它,第二次是返回。我以编程方式尝试了 searchView.clearFocus() 并在 if (!searchView.isIconified()) 内调用了两次 onBackPressed(),但它仍然没有不行。也许这是一个非常愚蠢的问题,但我非常感谢任何帮助。
【问题讨论】:
标签: android fragment searchview