【问题标题】:Add extra filtering options to SearchView android向 SearchView android 添加额外的过滤选项
【发布时间】:2015-11-07 11:00:17
【问题描述】:

最近我决定从我的自定义 SearchBox 切换到 Android v7 支持库提供的 SearchView。

但是,我使用自定义按钮来提供额外的过滤选项(通过 PopupMenu),因为为我的应用程序提供数据的 API 可以选择向搜索查询添加更多参数。 我用适当的过滤器按钮为自定义搜索框充气,整个事情都正常工作,只是缺少真正的材料设计。

如果我错了,请纠正我,但我认为没有按钮或菜单可以提供额外的过滤选项。

我在 Google 上搜索了如何向 SearchView 添加按钮,但我发现的东西对我没有用。

所以我的问题/问题是,如何在不违反准则的情况下以正确的方式添加额外的过滤选项(最好使用自定义按钮或至少设置 OnClick 侦听器的选项)?

我尝试使用标识符 android:id/submit_area 从 SearchView 获取 LinearLayout,使用

int parentLayoutId = searchView.getContext().getResources().getIdentifier("android:id/submit_area", null, null);
LinearLayout parent = (LinearLayout) searchView.findViewById(parentLayoutId);

但是没有找到具有该 ID 的任何内容。 在调试应用程序时,我可以看到名为 submit_area 的 LinearLayout 的 ID(它与 parentLayoutId 不同,但我不想将其硬编码到应用程序中。

我是完全错了还是根本不可能?

注意:我已经看到 YouTube 应用在您搜索后如何为您提供过滤选项,但这并不理想,因为我每个月可用的 API 请求数量有限。

希望尽快找到答案。

感谢您的建议和帮助!

蒂姆·科尔斯

【问题讨论】:

    标签: android filter options searchview


    【解决方案1】:

    我没有像您尝试的那样使用自定义搜索功能。

    但总的来说,如果您想减少 API 请求的数量,那么您最好的选择可能是让过滤器预先搜索。 (意思是:事先要求过滤器,然后在输入时将其应用于查询/请求)

    在您描述的场景中,我的建议是创建一个自定义操作视图,用户可以在其中输入“过滤器”,然后再输入“搜索请求”(我根本没有尝试过,但那将是我现在寻找的方向)

    在“应用栏”中制作类似于以下 ascii 艺术的布局...

    | [SEARCH_??_________] | [Add Filter #] | [...] | 
    

    我可能会将“#”更改为他们激活的过滤器的数量(如果您决定允许多个过滤器)(作为他们正在过滤的视觉提示)

    https://developer.android.com/training/appbar/action-views.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-25
      • 1970-01-01
      • 2013-04-14
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      • 1970-01-01
      相关资源
      最近更新 更多