2015-11-07 54 views
-1

最近我决定从我的自定义SearchBox切换到由Android v7支持库提供的SearchView。为SearchView添加额外的过滤选项android

但是我使用的是自定义按钮,以提供额外的过滤选项(通过PopupMenu的),因为与数据提供我的应用程序的API有多个参数添加到搜索查询的选项。 我用适当的过滤器按钮夸大了自定义SearchBox,整个工作正常,只有真正的材料设计丢失。

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

我搜索有关如何将按钮添加到搜索查看,并且我发现只是没有做的伎俩对我的事情谷歌。

所以我的问题/问题是,我如何添加额外的过滤选项(最好用自定义按钮,或至少设置的OnClick听众一个选项)而不破坏准则的正确方法?

我试图从与标识符的Android的搜索查看得到的LinearLayout:ID/submit_area,使用

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

但没有发现与该标识。 在调试应用程序时,我可以看到名为submit_area的LinearLayout的ID(它与parentLayoutId不同,但我不想将其硬编码到应用程序中)。

我是否完全错误或者是它根本不可能

注:我已经看到了YouTube应用如何让您搜索后您筛选选项,但是这实际上并不是理想的,因为我已经得到了每月可用的API请求数量有限

希望能很快找到答案

感谢您的sugg提及和帮助!

Tim Koers

回答

0

我还没有使用自定义搜索功能,如您正在尝试。

但在一般情况下,如果你想减少对API的请求数,那么你最好的选择可能是有过滤器预先给定的搜索。 (含义:事先询问过滤器,然后在输入时将其应用于查询/请求)

在这个场景中,您描述的是我的建议是创建一个自定义操作视图,用户可以在其中输入'过滤器'之前,他们进入'搜索请求'(我还没有尝试过这一点,但这将是我现在看的方向)

在“应用程序栏”中进行布局类似于以下ASCII艺术...

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

我可能会改变“#”到他们的过滤器的数量有效(如果你决定允许多于一个) (作为他们过滤的视觉提示)

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