如果SearchView与其重叠,则在ToolBar中隐藏应用名称

时间:2016-03-28 23:00:24

标签: android toolbar android-appcompat searchview

我有一个使用AppCompat主题和自定义工具栏的应用程序,它具有应用程序名称和searchView。当searchView在手机大小的屏幕上打开时,没有足够的空间容纳带有应用程序名称和打开的searchView的textView,因此它会垂直展开工具栏并且看起来很糟糕。

要解决此问题,我会在searchView打开时使用应用名称删除textView:

searchView.setOnSearchClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        title.setVisibility(View.GONE);
    }
});

当searchView关闭时,它回来了:

searchView.setOnCloseListener(new SearchView.OnCloseListener() {
    @Override
    public boolean onClose() {
    title.setVisibility(View.VISIBLE);
        return false;
    }
});

然而,在更大的屏幕设备上,如平板电脑,这不是必需的,只是消失的名字看起来很奇怪。

有没有办法检查是否有空间让searchView打开,并且仅在必要时删除应用名称?我知道我可以通过屏幕大小,dpi或类似的东西来做到这一点,但我想知道是否有更好的方法来检测这种情况。

1 个答案:

答案 0 :(得分:0)

一个解决方案和简单的解决方案是使用configuration qualifiers。您可以在boolean文件夹中存储values值,例如hasEnoughWidth,并将其设置为false。然后另一个屏幕尺寸的布尔值,你认为它有足够的宽度,只是猜测它的最小宽度400dp可能是好的。因此,在boolean文件夹中存储具有相同名称的values-w400dp变量,并将其设置为true。然后只需阅读boolean值并做出决定。这是一种常用的技术,可用于检测平板电脑或手机。