searchview不再关注方向变化

时间:2014-03-25 09:59:08

标签: android fragment screen-orientation searchview

我在我的应用中使用了带有操作栏和片段的searchview。 searchview以portrate模式打开,当我们更改方向时,它会关闭。如果searchview中存在任何文本,它将不会在方向chnage上关闭。即使搜索视图为空,我也想保留关于方向更改的searchview状态。我怎么能这样做?我试过了

 setRetainInstance(true);

但它不起作用。请帮帮我。

2 个答案:

答案 0 :(得分:2)

我自己实现了它,因为Android似乎没有为我保存它。

    final String s = savedSearchString;
    if (s != null) {
        searchViewMenuItem.expandActionView(); // opens the action view
    }

    searchView.post(new Runnable() {
        @Override
        public void run() {
            searchView.setQuery(s, false); // sets the last search string on the view
        } 
    });

' savedSearchString'来自savedInstanceState。确保在""上设置搜索窗口的初始内容。而不是null(默认),否则它不会重新打开一个空窗口。

答案 1 :(得分:0)

您可以创建一个布尔值。 当你打开searchView时,你将boolean设置为true。 当你关闭searchView时,你会把布尔值设为false。

在onCreate中,如果boolean = true,则打开searchView。

final SearchView searchView = (SearchView) itemSearch.getActionView();
    searchView.setQueryHint(Html
            .fromHtml("<font color = #ffffff>Search...</font>"));

    searchView.setOnSearchClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //your code
        }
    });