29

概述

我正在尝试实现Material Design 中描述的滚动技术之一,即具有重叠内容的灵活空间。

内容重叠的灵活空间

内容可以与应用栏重叠。

行为:

应用栏的起始位置应位于内容的后面。向上滚动时,应用栏应该比内容滚动得更快,直到内容不再与它重叠。固定到位后,应用栏会抬起以允许内容在下方滚动。

https://www.google.co.in/design/spec/patterns/scrolling-techniques.html#scrolling-techniques-scrolling


问题

但是,问题是,我的 AppBar 中的标题在展开时会向下滚动并隐藏在重叠内容的下方。

在这里,我的工具栏隐藏在重叠的 CardView 下方。 当应用栏展开时

当应用栏折叠时,工具栏和标题会从下方向上滑动。 崩溃时

代码

这是我的代码:

活动-main.xml

<android.support.design.widget.CoordinatorLayout 
    ...
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            ...
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:layout_gravity="top"
                android:background="?attr/colorPrimary"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        ...

我还在 MainActivity 的 onCreate 函数中添加了这些

    setSupportActionBar(toolbar);

    collapsingToolbarLayout.setTitle("App Name");

我希望工具栏(带有磁贴和其他内容,稍后我将添加)保持在顶部,而不管应用栏是展开还是折叠。

我已经阅读了文档,浏览了许多帖子和教程,观看了很多视频,但根本找不到可行的解决方案或任何相关的解决方案。

如果有人对如何解决此问题有一些想法,请提出建议。感谢您的帮助。

4

4 回答 4

77

当我在类似问题报告的评论中找到答案时,我自己也在寻找解决方案。

基本上你这样称呼setTitleEnabled()CollapsingToolbarLayout

CollapsingToolbarLayout.setTitleEnabled(false);

您也可以在 xml 中执行此操作,方法是将其添加到您的CollapsingToolbarLayout

app:titleEnabled="false"

通过将其设置为false,您将获得所需的行为。标题固定在屏幕顶部。

本身实际上已经在Toolbar顶部,但这使得标题也保留在那里,而不是在底部CollapsingToolbarLayoutToolbar.

于 2015-10-19T00:27:03.453 回答
5

我通过在Toolbar标签内添加以下代码来实现这一点。

app:layout_collapseMode="pin"
于 2017-07-10T07:44:27.050 回答
5

在我的情况下,我需要添加app:titleEnabled="false"CollapsingToolbarLayout AND app:layout_collapseMode="pin"android.support.v7.widget.Toolbar

现在,无论用户是向上还是向下滚动,工具栏都固定在屏幕顶部。

于 2017-12-30T17:51:26.000 回答
1

要将标题保持在顶部,只需将此属性添加到您的CollapsingToolbarLayout

app:expandedTitleGravity="top"
于 2018-11-21T19:46:38.553 回答