【发布时间】:2013-11-26 11:26:03
【问题描述】:
非常简单的问题,不需要太多代码:
我正在使用 Android 的默认 ActionBar(没有 Sherlock),其中有几个 MenuItem。其中之一是用于典型搜索场景的可折叠操作视图 (android:showAsAction="collapseActionView|always"):用户单击图标 → 搜索框展开 → 当用户键入任何内容时,onQueryTextChange 就会发挥作用。
SearchView sv = new SearchView(this);
sv.setLayoutParams(new ActionBar.LayoutParams(Gravity.RIGHT));
// Yada, yada...
sv.setOnQueryTextListener(new OnQueryTextListener() {
// The methods for onQueryTextSubmit and onQueryTextChange ... they apply filtering on the activity's list adapter and apparently work fine
}
menuItem.setActionView(sv); // menuItem is the item for the search action
searchAnswers.setOnActionExpandListener(new OnActionExpandListener() {
// The listener's methods for expand/collapse as I need some business logic behind them
}
以上所有都可以正常工作。
当设备处于纵向模式并且屏幕空间有限时,SearchView 几乎占据了整个操作栏,隐藏了其他 MenuItems(具有android:showAsAction="ifRoom")以及 Activity 的标题,这对我来说是可以的。
问题是,如果设备处于横向模式(因此仍有可用的 ActionBar 空间),SearchView 不会占用整个 ActionBar(再次,我很好),但 Activity 的标题消失(即使有足够的空间可以显示它!)。所以我的问题是我得到了这个可以显示活动标题的空白空间。
展开前:
展开后:
(两张截图均来自手机横向模式。已在 Android 4.0.4 和 4.3 上测试。)
关于如何在有足够空间的情况下保持 Activity 的标题的任何提示?
【问题讨论】:
标签: java android android-layout android-actionbar