Java ActionBar中的SearchView和活动标题
非常简单的问题,不需要太多代码: 我使用的是Android默认的ActionBar(没有Sherlock),其中有几个菜单项。其中之一是一个可折叠的操作视图(Java ActionBar中的SearchView和活动标题,java,android,android-layout,android-actionbar,Java,Android,Android Layout,Android Actionbar,非常简单的问题,不需要太多代码: 我使用的是Android默认的ActionBar(没有Sherlock),其中有几个菜单项。其中之一是一个可折叠的操作视图(android:showAsAction=“collapseActionView | always”),用于典型的搜索场景:用户单击图标→ 搜索框将展开→ 当用户在QueryTextChange上键入任何内容时,它会发挥作用) 所有这些都很好 当设备处于纵向模式且屏幕空间有限时,SearchView几乎占据了整个操作栏,隐藏了其他菜单项(有
android:showAsAction=“collapseActionView | always”
),用于典型的搜索场景:用户单击图标→ 搜索框将展开→ 当用户在QueryTextChange上键入任何内容时,它会发挥作用)
所有这些都很好
当设备处于纵向模式且屏幕空间有限时,SearchView几乎占据了整个操作栏,隐藏了其他菜单项(有android:showAsAction=“ifRoom”
)以及活动标题,我认为这是可以的
问题是,如果设备处于横向模式(因此仍然有可用的操作栏空间),SearchView不会占据整个操作栏(我也很好),但活动的标题会消失(即使有足够的空间可以显示!)。所以我的问题是,我得到了一个可以显示活动标题的空白区域
展开前:
展开后:
(两个屏幕截图都来自处于横向模式的手机。使用安卓4.0.4和4.3进行了测试。)
如果有足够的空间,有没有关于如何保留活动标题的提示?不确定您是否找到了这个问题的答案。但我在这条线索上找到了一个可能有用的答案——它确实帮助了我 从链接复制的代码:
searchView.setOnSearchClickListener(new OnClickListener() {
private boolean extended = false;
@Override
public void onClick(View v) {
if (!extended) {
extended = true;
LayoutParams lp = v.getLayoutParams();
lp.width = LayoutParams.MATCH_PARENT;
}
}
});
基于CoolMind答案,我将“最大宽度”设置为较小的值:
searchView.setMaxWidth(375);
setMaxWidth()将其参数解释为像素。谢谢Jun。问题是关于保留活动标题(不是关于如何使SearchView填充父级),但考虑到问题的年龄,您的答案似乎已经足够好了。@user1987392这不正是您想要的吗?
searchView.setMaxWidth(Integer.MAX_VALUE);
searchView.setMaxWidth(375);