2015-11-07 52 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