[英]Android - Customize SearchView suggestions divider
我正在嘗試在ActionBar
自定義SearchView
。 剩下的最后一件事是設置建議下拉分隔線顏色。 早些時候,我發現,由於某些無法想象的原因,人們並不能簡單地對SearchView
樣式設置,大多數內容只能在運行時中進行樣式設置,並且您必須通過Google搜索各種不同的技巧來獲得所需的外觀。
我使用AppCompat版本,但是我認為過程非常相似。 首先,我檢索我的SearchView
:
searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.search));
我在源代碼中發現,該下拉菜單隱藏在AutoCompleteTextView
某些內部擴展中,但是仍可以通過其ID進行訪問,如下所示:
AutoCompleteTextView actv = (AutoCompleteTextView) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
現在,下一個任務是在AutoCompleteTextView
內部設置分隔符的樣式。 問題在於AutoCompleteTextView本身是一個內部包含ListPopupWindow的TextView
(請參見AutoCompleteTextView.java的源代碼中的mPopup變量),它最終具有所需的getListView
方法,並且ListView具有我真正想要的setDivider
和setDividerHeight
方法。采用。 但是ListPopupWindow是在運行時創建的,僅按需顯示,它是私有成員,所以我不知道如何訪問它。
因此,簡化后的結構再次是ActionBar > SearchView > AutoCompleteTextView > ListPopupWindow > ListView
。 我已經找到了繞過所有箭頭的方法,但只有一個( AutoCompleteTextView
> ListPopupWindow
)。
另一種選擇是使用XML對其進行樣式設置,但是正如我前面提到的那樣,對ActionBar
尤其是SearchView
樣式設置非常麻煩,而且我從閱讀源代碼時真的不知道該怎么做。
只有我發現使用谷歌的事情是設置主題(例如,像所有下拉列表分隔此 ),但它並不適用於SearchView
下拉,我不知道為什么。
有人至少可以幫助我嗎?
謝謝!
好的,所以我最終發現將整個主題從Holo.Light.DarkActionBar更改為Holo.Light更為簡單,因為分隔線的顏色已經可以了,所以我只需要將ActionBar設置為Dark版本即可,但是那很簡單,大約花了20分鍾:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.