2015-11-01 13 views
1

默認情況下,如果在SearchView爲空時按下SearchView x按鈕(位於SearchView右側),鍵盤將隱藏,同時將SearchView縮小爲放大鏡圖標。這會導致SearchView的底部邊框隱藏以及提示(佔位符)。如何刪除此功能,以便在按下x按鈕時SearchView永不收縮並丟失其功能?如何停止Android SearchView x按鈕隱藏提示和底部邊框?

回答

0

STEP 1:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="actionBarWidgetTheme">@style/AppTheme.WidgetTheme</item> 
</style> 

<style name="AppTheme.WidgetTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="searchViewCloseIcon">@android:color/transparent</item> 
</style> 

OR

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="searchViewStyle">@style/AppTheme.SearchView</item> 
</style> 

<style name="AppTheme.SearchView" parent="Widget.AppCompat.SearchView"> 
    <item name="closeIcon">@android:color/transparent</item> 
</style> 

如果你想以編程方式做到這一點,請嘗試以下

第二步:

searchView.setBackgroundColor(Color.WHITE); 

((EditText)searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text)).setHintTextColor(Color.WHITE); 
+0

不起作用。我不知道如何將背景顏色更改爲白色會神奇地導致邊框保持以及提示。 – JessThePest

0

onCreateOptionsMenu方法,設置一個OnCloseListenerSearchView並返回true在它的onClose()方法。這將防止它的默認行爲,所以它什麼也不做。檢查下面的示例:

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.search_options_menu, menu); 
    MenuItem searchMenuItem = menu.findItem(R.id.itemSearch); 
    searchView = (SearchView) searchMenuItem.getActionView(); 
    searchView.setOnCloseListener(new SearchView.OnCloseListener() { 
    @Override 
    public boolean onClose() { 
    return true; 
    } 
}); 
}