为SearchView android添加额外的筛选选项

为SearchView android添加额外的筛选选项,android,filter,options,searchview,Android,Filter,Options,Searchview,最近,我决定从我的自定义搜索框切换到Android v7支持库提供的SearchView 但是,我使用了一个自定义按钮来提供额外的过滤选项(通过弹出菜单),因为为我的应用程序提供数据的API有向搜索查询添加更多参数的选项。 我用过滤器按钮给定制的搜索框充气,整个东西都正常工作,只是缺少了真正的材料设计 如果我错了,请纠正我,但我认为没有按钮或菜单提供额外的过滤选项 我在Google上搜索过如何在SearchView中添加一个按钮,但我发现的东西对我来说并没有什么作用 因此,我的问题是,如何以正确

最近,我决定从我的自定义搜索框切换到Android v7支持库提供的SearchView

但是,我使用了一个自定义按钮来提供额外的过滤选项(通过弹出菜单),因为为我的应用程序提供数据的API有向搜索查询添加更多参数的选项。 我用过滤器按钮给定制的搜索框充气,整个东西都正常工作,只是缺少了真正的材料设计

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

我在Google上搜索过如何在SearchView中添加一个按钮,但我发现的东西对我来说并没有什么作用

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

我已经尝试使用以下命令从SearchView获取标识符为android:id/submit_区域的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不同,但我不想将ID硬编码到应用程序中)

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

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

希望尽快找到答案

谢谢你的建议和帮助


蒂姆·科尔斯(Tim Koers)

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

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

在您描述的场景中,我的建议是创建一个自定义的actionview,用户可以在输入“搜索请求”之前输入“过滤器”(我根本没有尝试过,但这将是我现在寻找的方向)

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

| [SEARCH_??_________] | [Add Filter #] | [...] | 
我可能会将“#”更改为它们活动的过滤器数量(如果您决定允许多个过滤器)(作为它们正在过滤的视觉提示)