【问题标题】:ActionBar always expanded SearchView with the icon insideActionBar 总是用里面的图标展开 SearchView
【发布时间】:2014-07-15 11:54:20
【问题描述】:
我有一个带有 SearchView 的 ActionBar。
我希望搜索视图始终“打开”(展开)。使用
可以做到这一点
mSearchView.setIconifiedByDefault(false);
但由于某种原因,它会将搜索图标移到文本区域之外:
如果我不使用 setIconifiedByDefault(),我希望它在展开时看起来像:
但随后它会折叠成背面的搜索图标,并且
MenuItemCompat.expandActionView(searchItem);
似乎没有帮助。
有没有办法实现我想要的?
【问题讨论】:
标签:
android
android-actionbar
searchview
【解决方案1】:
你可以拦截 OnClose 事件:
searchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
return true;
}
});
【解决方案2】:
我能够通过更改我的 XML 来解决这个问题
<item android:id="@+id/search"
android:icon="@drawable/my_icon"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView" />
到
<item android:id="@+id/search"
android:icon="@drawable/my_icon"
app:showAsAction="always"
app:actionViewClass="android.support.v7.widget.SearchView" />
【解决方案3】:
始终在操作栏上显示/展开搜索框
这是一个两步的解决方案,
1.public void onCreateOptionsMenu(M...
...
searchView.setIconifiedByDefault(false);
}
2。
在菜单 xml 文件中,确保设置了 android:showAsAction="always"
<item
android:id="@+id/grid_default_search"
android:icon="@android:drawable/ic_menu_search"
android:title="search"
android:showAsAction="always"
android:actionViewClass="android.widget.SearchView"
/>