【问题标题】:Searchview needs extra onBackPressedSearchview 需要额外的 onBackPressed
【发布时间】: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


    【解决方案1】:

    最后,我找到了解决方案。我刚刚添加了

    searchView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
       @Override
       public void onViewAttachedToWindow(View v) {
           Log.d("MyTag","Search Expanded");
           fragment_search = new Fragment_Search();
            replaceFragment(fragment_search);
        }
    
        @Override
        public void onViewDetachedFromWindow(View v) {
            Log.d("MyTag","Search Hide");
            onBackPressed();
            }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-20
      相关资源
      最近更新 更多