如何在 Android 中展开的 SearchView(显示 10 个最近搜索)下方添加一个按钮(如“清除历史记录”)?

Posted

技术标签:

【中文标题】如何在 Android 中展开的 SearchView(显示 10 个最近搜索)下方添加一个按钮(如“清除历史记录”)?【英文标题】:How to add a Button (like 'Clear History') below the expanded SearchView (showing 10 recent searches) in Android? 【发布时间】:2011-11-06 18:05:13 【问题描述】:

任何人都可以帮助如何在 SearchView 显示的最近搜索建议列表下方的展开的 SearchView(放置在 ActionBar 中)添加一个按钮?

由于 SearchView 扩展了 LinearLayout,我尝试在布局中添加一个按钮,但无法将其放在展开的建议列表下方。

我制作了一个名为“mysearch”的垂直线性布局,其中包含一个 SearchView 和一个下方的按钮。然后我在android:actionLayout="@layout/mysearch" inmenu.xml`中也提到了ActionBar。

我尝试通过使用在我的活动的onCreateOptionsMenu 中获取对 SearchView 的引用

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

当我运行它时,我得到一个 ClassCastException:cannot convert LinearLayout to SearchView,可能是因为 getActionView() 期待 SearchView 但这里返回的是一个 LinearLayout。我不知道如何解决这个问题。

【问题讨论】:

您可以告诉我们您的最终解决方案吗? 【参考方案1】:

您应该可以将SearchView 放入垂直的LinearLayout 并在其下方添加按钮。

【讨论】:

我尝试这样做并在 actionLayout 属性中使用布局,但仍然无法做到。我已将详细信息放在上面改写的问题中。请帮助

以上是关于如何在 Android 中展开的 SearchView(显示 10 个最近搜索)下方添加一个按钮(如“清除历史记录”)?的主要内容,如果未能解决你的问题,请参考以下文章

android中OptionsMenu(包括点击more展开的部分)字体颜色之类的如何设置?

如何在 Android 中展开的 SearchView(显示 10 个最近搜索)下方添加一个按钮(如“清除历史记录”)?

如何在android中单击listview适配器时展开和折叠视图

如何设置Android Studio背景的颜色

如何在 Android 上实现 Material Design 展开/折叠列表?

Android仅在状态栏展开时显示通知