30

私はこれに何週間も苦労してきました..ユーザーの入力に応じて提案を含むカスタムリストビューを提供するグローバル検索があります。ユーザーがオプションを選択すると、searchview が完全に折りたたまれた状態に戻ります。

ここに画像の説明を入力

代わりに、縮小されますが、わずかに拡大されたビューのままです。

ここに画像の説明を入力

私はこのことを閉じるために見つけることができるすべてのものを投げましたが、私の人生では正しい方法を得ることができません. 関数は次のとおりです。

    final SearchView.OnCloseListener closeListener = new SearchView.OnCloseListener() {

        @Override
        public boolean onClose() {
            return closeSearch();
        }
    };

    protected boolean closeSearch() {
    _searchView.clearFocus();
    _searchView.setQuery("", false);
    _searchView.setFocusable(false);
    _searchMenuItem.collapseActionView();
    isSearchFragmentVisible(false);
    return false;
}

カスタムの「提案」リストビューから項目が選択されると、クローズ検索が手動で呼び出されます。

4

10 に答える 10

53

_searchView.onActionViewCollapsed()call menuItem.collapseActionView()whereを呼び出す代わりに_searchView = menuItem.getActionView().

于 2013-02-06T00:11:12.573 に答える
45

それを見つけた。呼び出しは です_searchView.onActionViewCollapsed()。なぜ「リスナー」スタイルのメソッド (つまり、「on」で始まるメソッド) を呼び出すのかは、私には理解できません。

于 2012-12-03T22:19:34.520 に答える
20

@sebastianそれは実際には正しくありません。

私はしばらくこの問題で立ち往生していましたが、最終的に正しい方法で処理することができました. menuSearch.collapseActionView();を呼び出すとします。代わりは。このメソッドは、オーバーライドできるonActionViewCollapsedを呼び出します。したがって、リスナーを呼び出さないでください ;)

MenuItem menuSearch = menu.findItem(R.id.itemSearch);
SearchView searchView = (SearchView) menuSearch.getActionView();
//Don't use next line
//searchView.onActionViewCollapsed();
menuSearch.collapseActionView();
于 2013-08-26T13:45:52.163 に答える
12

ツールバー (android.support.v7.widget.Toolbar)とそれに対応するSearchView (android.support.v7.widget.SearchView)を使用している場合、これは機能します。

    searchView.setQuery("", false);
    searchView.clearFocus();
    searchView.setIconified(true);
于 2016-02-26T07:01:36.180 に答える
8

検索をクリアし、フォーカスを外してから、次を呼び出す必要があります。

searchView.setIconified(true);
于 2015-03-15T22:03:04.027 に答える
2

最新のドキュメントソースコードiffに基づいて、返すfalseだけで十分だったはずです。 iconifiedByDefault == true

ひょっとして を定義iconifiedByDefault="false"または呼び出しましたsetIconifiedByDefault(false)か?

于 2014-12-18T23:33:53.630 に答える