Android: CollapsingToolbarLayout 和 SearchView,文本重叠

Android: CollapsingToolbarLayout and SearchView, text overlapping

我对 CollapsingToolbarLayout 标题与 SearchView 文本的重叠问题不大。 CollapsingToolbarLayout展开时没有问题:

但是当折叠时,文本重叠:

如何解决?

现在答案很简单,在单击搜索 按钮时展开 CollapsingToolbarLayout。感谢 Tuấn Trần Anh 和此代码:

coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator_layout);
appBarLayout = (AppBarLayout) findViewById(R.id.appbar);
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior();

behavior.setTopAndBottomOffset(0);
behavior.onNestedPreScroll(coordinatorLayout, appBarLayout, null, 0, 1, new int[2]);

更多信息在 .

编辑

还是没有解决,又解决了一个现实的问题。通过更改文本。现在的诀窍是使用 ControllableAppLayout 知道栏何时折叠或展开,然后您只需设置并清空标题 setTitle("")

你可以在这里找到我的实现 https://gist.github.com/skimarxall/863585dcd7abde8f4153

问题: https://code.google.com/p/android/issues/detail?id=178138

我尝试了 Tomas 的答案,但它有一个问题,一旦用户滚动,appbar 就会再次折叠,问题 re-appears。

所以我想到了另一个解决方案,即在展开搜索视图时使折叠的标题文本透明。这很好用,不依赖于或更改应用栏的 collapse/expand 状态。

就是这样:

    if (searchViewExpanding) {
        collapsingToolbarLayout.setCollapsedTitleTextColor(Color.TRANSPARENT);
    } else {
        collapsingToolbarLayout.setCollapsedTitleTextColor(Color.WHITE);
    }

当然,您需要处理 setOnActionExpandListener 搜索菜单项才能知道何时调用它。