簡體   English   中英

Android-自定義SearchView建議分隔線

[英]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具有我真正想要的setDividersetDividerHeight方法。采用。 但是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM