解決Android SearchView不顯示搜索icon的問題
背景:
之前碰到了一個頁面展示問題,SearchView放在Toolbar里面,展示在頁面頂部,發(fā)現(xiàn)進(jìn)入這個頁面后,左上角是箭頭圖標(biāo)(表示點(diǎ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對應(yīng)的Drawable設(shè)置為null,mCollapsedIcon.setVisibility(iconVisibility)才會隱藏搜索圖標(biāo)。代碼比較簡單,主要是要有意識的去翻看源碼,看看內(nèi)部實(shí)現(xiàn)。
mCollapsedIcon = findViewById(R.id.search_mag_icon);
還可以找到SearchView對應(yīng)的xml布局文件,路徑是appcompat-v7/res/layout/abc_search_view.xml
到此問題完美解決。
遺留一個小問題,如果要更換SearchView的closebtn(類似ClearEditText的清空內(nèi)容的圖標(biāo))對應(yīng)的圖片資源呢?咱們留到下一篇講解。
總結(jié)
以上所述是小編給大家介紹的解決Android SearchView不顯示搜索icon的問題 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
- Android開發(fā)之搜索框SearchView用法示例
- Android自定義View實(shí)現(xiàn)搜索框(SearchView)功能
- Android仿簡書動態(tài)searchview搜索欄效果
- Android搜索框(SearchView)的功能和用法詳解
- Android搜索框SearchView屬性和用法詳解
- Android SearchView搜索框組件的使用方法
- Android搜索框組件SearchView的基本使用方法
- 可支持快速搜索篩選的Android自定義選擇控件
- Android自定義控件實(shí)現(xiàn)UC瀏覽器語音搜索效果
- Android?SearchView搜索控件使用方法詳解
相關(guān)文章
Android編程實(shí)現(xiàn)應(yīng)用程序開機(jī)自啟動的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)應(yīng)用程序開機(jī)自啟動的方法,涉及Android權(quán)限控制及廣播操作相關(guān)技巧,需要的朋友可以參考下2017-02-02
Android布局耗時監(jiān)測的三種實(shí)現(xiàn)方式
在Android應(yīng)用開發(fā)中,性能優(yōu)化是一個至關(guān)重要的方面,為了更好地監(jiān)測布局渲染的耗時,我們需要一種可靠的實(shí)現(xiàn)方案,本文將介紹三種針對Android布局耗時監(jiān)測的實(shí)現(xiàn)方案,幫助開發(fā)者及時發(fā)現(xiàn)并解決布局性能問題,需要的朋友可以參考下2024-03-03
Assert.assertEquals()方法參數(shù)詳解
本文詳細(xì)講解了Assert.assertEquals()方法參數(shù),文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12
Android?ViewStub使用方法學(xué)習(xí)
這篇文章主要為大家介紹了Android?ViewStub使用方法學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Android APP使用自定義字體實(shí)現(xiàn)方法
這篇文章主要介紹了Android APP使用自定義字體實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2016-10-10
Android 實(shí)現(xiàn)圖片生成卷角和圓角縮略圖的方法
本篇文章主要介紹了Android 實(shí)現(xiàn)圖片生成卷角和圓角縮略圖的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11
Android如何使用RecyclerView打造首頁輪播圖
這篇文章主要為大家詳細(xì)介紹了Android如何使用RecyclerView打造首頁輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02
Flutter簡潔實(shí)用的圖片編輯器的實(shí)現(xiàn)
本文主要介紹了Flutter簡潔實(shí)用的圖片編輯器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02

