解決Android SearchView不顯示搜索icon的問題
背景:
之前碰到了一個頁面展示問題,SearchView放在Toolbar里面,展示在頁面頂部,發(fā)現(xiàn)進入這個頁面后,左上角是箭頭圖標(表示點擊返回),中間區(qū)域就是搜索欄,不過看到會顯示搜索icon🔍感覺額外丑陋,就想要把它隱藏掉,找了一圈沒有找到如何隱藏Android中android.support.v7.widget.SearchView
的icon,只好自己慢慢研究,手動調(diào)試觀察效果了。
解決辦法:
經(jīng)過一段時間的調(diào)試,得出了結(jié)論,先給出方案。
final ImageView searchIcon = (ImageView) mSearchView.findViewById(android.support.v7.appcompat.R.id.search_mag_icon); mSearchView.post(new Runnable() { @Override public void run() { searchIcon.setImageDrawable(null); searchIcon.setVisibility(View.GONE); } });
接著從android.support.v7.widget.SearchView的源碼中,找找原因。
private void updateViewsVisibility(final boolean collapsed) { mIconified = collapsed; // Visibility of views that are visible when collapsed final int visCollapsed = collapsed ? VISIBLE : GONE; // Is there text in the query final boolean hasText = !TextUtils.isEmpty(mSearchSrcTextView.getText()); mSearchButton.setVisibility(visCollapsed); updateSubmitButton(hasText); mSearchEditFrame.setVisibility(collapsed ? GONE : VISIBLE); final int iconVisibility; if (mCollapsedIcon.getDrawable() == null || mIconifiedByDefault) { iconVisibility = GONE; } else { iconVisibility = VISIBLE; } mCollapsedIcon.setVisibility(iconVisibility); updateCloseButton(); updateVoiceButton(!hasText); updateSubmitArea(); }
updateViewsVisibility()
方法很關(guān)鍵,會被執(zhí)行多次,這個方法就決定了mCollapsedIcon是否顯示隱藏,通過分析,得出需要將mCollapsedIcon對應的Drawable設(shè)置為null,mCollapsedIcon.setVisibility(iconVisibility)
才會隱藏搜索圖標。代碼比較簡單,主要是要有意識的去翻看源碼,看看內(nèi)部實現(xiàn)。
mCollapsedIcon = findViewById(R.id.search_mag_icon);
還可以找到SearchView對應的xml布局文件,路徑是appcompat-v7/res/layout/abc_search_view.xml
到此問題完美解決。
遺留一個小問題,如果要更換SearchView的closebtn(類似ClearEditText的清空內(nèi)容的圖標)對應的圖片資源呢?咱們留到下一篇講解。
總結(jié)
以上所述是小編給大家介紹的解決Android SearchView不顯示搜索icon的問題 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Android自定義Dialog實現(xiàn)加載對話框效果
這篇文章將介紹如何定制當今主流的對話框,通過自定義dialog實現(xiàn)加載對話框效果,具體實現(xiàn)代碼大家通過本文學習吧2018-05-05Android中RecyclerView實現(xiàn)多級折疊列表效果(二)
這篇文章主要給大家介紹了Android中RecyclerView實現(xiàn)多級折疊列表的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-05-05Android實現(xiàn)動態(tài)圓環(huán)的圖片頭像控件
這篇文章主要為大家詳細介紹了Android實現(xiàn)帶有動態(tài)圓環(huán)的圓形圖片控件DynamicAvatarView的相關(guān)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11Android使用AudioRecord實現(xiàn)錄音功能
這篇文章主要為大家詳細介紹了Android使用AudioRecord實現(xiàn)錄音功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08