如何阻止Android SearchView x按钮隐藏提示和底部边框?

时间:2015-11-01 09:31:55

标签: android searchview

默认情况下,如果在SearchView为空时按下SearchView x按钮(在SearchView右侧),键盘将隐藏,同时将SearchView缩小为放大镜图标。这会导致SearchView的下边框以及提示(占位符)隐藏。如何删除此功能,以便在按下x按钮时,SearchView永远不会缩小并丢失其功能?

2 个答案:

答案 0 :(得分:1)

onCreateOptionsMenu方法中,将OnCloseListener设置为SearchView并在其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;
  }
});
}

答案 1 :(得分:0)

第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>

<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>

如果您想以编程方式执行此操作,请尝试以下

<强>步骤2:

searchView.setBackgroundColor(Color.WHITE);

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