Eli*_*vah 98 java android android-actionbar
ActionBar有一个名为"SearchView"的小部件.当它不使用时,它看起来像这样:

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

我想(当然是以编程方式)打开searchview(使其"正在使用").
我尝试了几个功能,例如:
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setOnQueryTextListener(this);
searchView.performClick();
searchView.requestFocus();
Run Code Online (Sandbox Code Playgroud)
但这些都没有奏效......
XML中的SearchView:
<item android:id="@+id/menu_search"
android:title="Search"
android:icon="@drawable/ic_action_search"
android:showAsAction="ifRoom|collapseActionView"
android:actionViewClass="android.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)
Mat*_*ers 242
展开SearchView使用
searchView.setIconified(false);
Run Code Online (Sandbox Code Playgroud)
用它来折叠它
searchView.setIconified(true);
Run Code Online (Sandbox Code Playgroud)
您需要将android:showAsActionfrom 的值更改ifRoom|collapseActionView为always.该SearchView的属性android:iconifiedByDefault应该是true,这是默认值,否则用户无法折叠SearchView它编程扩大后.
qba*_*ait 69
尝试调用expandActionView()MenuItem,而不是ActionView上的onActionViewExpanded().
这个对我有用.
MenuItem searchMenuItem = menu.findItem(R.id.menu_search);
searchView = (SearchView) searchMenuItem.getActionView();
searchMenuItem.expandActionView();
Run Code Online (Sandbox Code Playgroud)
Ola*_*nka 13
如果您只在必要时使用支持库,请执行此操作
MenuItem searchMenuItem = menu.findItem(R.id.action_search);
if (Utils.hasIceCreamSandwich())
searchMenuItem.expandActionView();
else MenuItemCompat.expandActionView(searchMenuItem);
Run Code Online (Sandbox Code Playgroud)
否则只是这样做
MenuItem searchMenuItem = menu.findItem(R.id.action_search);
MenuItemCompat.expandActionView(searchMenuItem);
Run Code Online (Sandbox Code Playgroud)
我知道这已经很晚了
尝试调用expandActionView()打开它,使用collapseActionView()来关闭它.您可以通过getActionView()在实际的Action View上调用requestFocus()来给搜索视图焦点:)
为了androidx.appcompat.widget.SearchView,
searchView.setIconifiedByDefault(true) // didn't work
searchMenuItem.expandActionView() // didn't work
MenuItemCompat.expandActionView(searchMenuItem) // didn't work
searchView.onActionViewExpanded() // didn't work
Run Code Online (Sandbox Code Playgroud)
以下内容对我有用,
searchView.findViewById<View>(R.id.search_button).performClick()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51609 次 |
| 最近记录: |