Java ActionBar中的SearchView和活动标题

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默认的ActionBar(没有Sherlock),其中有几个菜单项。其中之一是一个可折叠的操作视图(
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);