100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java searchview_如何以编程方式打开SearchView?

java searchview_如何以编程方式打开SearchView?

时间:2024-08-17 20:29:26

相关推荐

java searchview_如何以编程方式打开SearchView?

问题

ActionBar有一个名为"SearchView"的小部件。当它不使用时,它看起来像这样:

当它在使用时,它看起来像这样:

我想(当然是以编程方式)打开searchview(使其"正在使用")。

我尝试了几个功能,例如:

SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();

searchView.setOnQueryTextListener(this);

searchView.performClick();

searchView.requestFocus();

但这些都没有奏效......

XML中的SearchView:

android:title="Search"

android:icon="@drawable/ic_action_search"

android:showAsAction="ifRoom|collapseActionView"

android:actionViewClass="android.widget.SearchView" />

#1 热门回答(210 赞)

展开SearchViewwith

searchView.setIconified(false);

用它来折叠它

searchView.setIconified(true);

你需要将值android:showAsAction从ifRoom|collapseActionView更改为always。 SearchView的属性android:iconifiedByDefault应为true,这是默认值,否则用户在以编程方式扩展后无法折叠SearchView。

#2 热门回答(63 赞)

尝试在ActionView上调用expandActionView(),而不是在ActionView上调用onActionViewExpanded()。

这个对我有用。

MenuItem searchMenuItem = menu.findItem(R.id.menu_search);

searchView = (SearchView) searchMenuItem.getActionView();

searchMenuItem.expandActionView();

#3 热门回答(11 赞)

如果你只想在必要时使用支持库,请执行此操作

MenuItem searchMenuItem = menu.findItem(R.id.action_search);

if (Utils.hasIceCreamSandwich())

searchMenuItem.expandActionView();

else MenuItemCompat.expandActionView(searchMenuItem);

否则只是这样做

MenuItem searchMenuItem = menu.findItem(R.id.action_search);

MenuItemCompat.expandActionView(searchMenuItem);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。