2015-11-01 69 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; 
    } 
}); 
}