带 ViewPager 的 CollapsingToolbarLayout 内的片段不会向下滑动

2024-02-13

我有一个带有 CollapsingToolbarLayout 和 TabLayout 的活动。当我左右滑动时,它在片段之间完美移动。然而,当我尝试向下滚动(屏幕截图中的红色箭头)时,它会忽略它。我尝试向片段添加 ScrollView 但它没有产生不同。有什么想法吗?

顺便说一句 - 不知何故,在第二个片段(RecycleView)上,向下滑动是有效的。这可以在右侧的屏幕截图中看到:

MainActivity 的 XML:

    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/root_coordinator"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/app_bar_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/collapsing_toolbar_layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:contentScrim="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|enterAlways">

                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="122dp"
                    android:scaleType="centerCrop"
                    android:src="@drawable/rsz_bg_cover"
                    app:layout_collapseMode="parallax" />

                <android.support.v7.widget.Toolbar
                    android:id="@+id/app_bar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                    app:layout_collapseMode="pin" />

            </android.support.design.widget.CollapsingToolbarLayout>

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

                <android.support.design.widget.TabLayout
                    android:id="@+id/tab_layout"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@color/colorAccent"
                    app:layout_collapseMode="pin"
                    app:tabIndicatorColor="@color/colorPrimary"
                    app:tabSelectedTextColor="@android:color/white"
                    app:tabTextColor="#EEE" />
            </android.support.design.widget.CollapsingToolbarLayout>

        </android.support.design.widget.AppBarLayout>

        <android.support.v4.view.ViewPager
            android:id="@+id/view_pager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" />


    </android.support.design.widget.CoordinatorLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_drawer"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:menu="@menu/menu_drawer" />
</android.support.v4.widget.DrawerLayout>

试试这个布局。我已经添加了TabLayout in AppBarLayout,我相信它应该和你想要的一样工作。但如果你愿意的话,你可以保留两个CollapsingToolbarLayout实现您想要的行为。并确保fitsSystemWindows应该是相同的true or false在所有布局中,否则您可能看不到预期的行为。

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/root_coordinator"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:contentScrim="?attr/colorPrimary"
            android:fitsSystemWindows="true"
            app:layout_scrollFlags="scroll|enterAlways">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="122dp"
                android:scaleType="centerCrop"
                android:src="@drawable/rsz_bg_cover"
                app:layout_collapseMode="parallax" />

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                app:layout_collapseMode="pin" />

        </android.support.design.widget.CollapsingToolbarLayout>

        <android.support.design.widget.TabLayout
            android:id="@+id/tab_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/colorAccent"
            app:layout_collapseMode="pin"
            app:tabIndicatorColor="@color/colorPrimary"
            app:tabSelectedTextColor="@android:color/white"
            app:tabTextColor="#EEE" />
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

</android.support.design.widget.CoordinatorLayout>

And in Fragment布局、用途NestedScrollView并添加layout_behavior in it.

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

        // Your Layout

</android.support.v4.widget.NestedScrollView>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带 ViewPager 的 CollapsingToolbarLayout 内的片段不会向下滑动 的相关文章

随机推荐

  • 正确实现不同类型但语义等效的两个对象的比较

    我发现了类似的问题 如何比较具有相似属性的两个截然不同的对象 https stackoverflow com questions 1725327 how to compare two distinctly different objects
  • 使用 shell 脚本从文件中提取唯一的行块

    从文件中提取行块时 我遇到了一些问题 考虑以下两个文件 File 1 1 20 abc this is test 1 perl RRP RRP 1 30 JEDI JEDIExportSuccess2 exec perl RRP RRP 1
  • 如何在 Jenkins 管道脚本中使用 source 命令

    我最近将 bash 执行命令重写到 Jenkins 管道中 旧的代码就像 source environment sh Build Test 现在我使用管道脚本来包装命令 如下所示 sh source environment sh Build
  • 使用捏合手势在运行时缩放 SCNNode

    我正在尝试使用捏合手势实时缩放和 SCNNode 这是我当前的代码 let pinchGestureRecognizer UIPinchGestureRecognizer target self action selector handle
  • 在一定时间内淡出/过渡顺风等级到其他等级?

    有没有办法设置bg red 300并将其淡出 过渡到bg transparent或超过 2 秒的不同 bg 类 或者我是否需要 javascript 我想要一个元素突出显示 然后在 2 秒后恢复正常 谢谢你 您可以使用配置文件创建自己的动画
  • Pip3安装模块在哪里?

    乌班图15 10 Python 3 4 3 姜戈 1 8 7 当我尝试import django在 python3 解释器中 它说ImportError No module named django 我知道 Django 1 8 7 已安装
  • 获取 #000 格式的背景颜色而不是 RGB [重复]

    这个问题在这里已经有答案了 使用此代码 我可以获得表中任何 TD 的 RGB 颜色 alert this css background color 结果是 RGB 0 255 0 jquery 是否可以获取 000 格式 或者我可以使用函数
  • Python 十六进制变量赋值

    我使用一个变量来存储由套接字发送的数据 当我在程序中分配它时 它可以工作 但是当我从文件中读取它时 它被视为字符串 Example data x31 x32 x33 print data Outputs 123 lt this is the
  • ShutDownListener 中的 TaskCanceledException

    目前我们看到很多TaskCanceledException被甩掉MS Internal ShutDownListener HandleShutDown 这个问题从 5 月中旬开始 可能与 Net 或 Windows 10 的某些更新有关 我
  • 减少 Azure 上传的文件大小

    我在 Azure 上有一个托管服务 每次我想放置包 cspkg 和 cscfg 文件 时总是需要很长时间 我的 cspkg 文件有 18 MB 有没有更好的上传方法 我的想法是将图像 样式等放入 Azure 上的存储中 并将我的 Web 应
  • WSH 脚本单元测试框架[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 WSH 脚本的单元测试框架 vbs wsf 而不是 VB6 VBA 除了这个项目 我找不到任
  • 如何在 Chrome 应用程序中显示 PDF 的数据 URI?

    我有一个从 JavaScript PDF 库 jsPDF 生成的数据 URI 似乎没问题 因为当我使用 console log 显示它并将其粘贴到浏览器 URL 字段时 它可以工作 但是 我无法让它在 Chrome 应用程序中显示 无论是在
  • 来自 PHAsset 的 NSURL

    我正在将我们的应用程序转换为使用 iOS8 的照片框架 ALAsset 框架显然是 iOS8 下的二等公民 我遇到的一个问题是我们的架构确实需要一个 NSURL 来表示媒体在 磁盘 上的位置 我们用它来将媒体上传到我们的服务器以进行进一步处
  • 如何创建继承自TextBox的类

    我想制作一个继承 TextBox 的自定义 TextBox 类 并重写 onKeyDown 事件 以便在按下 Enter 键时启用 Tab 功能 这个问题有重复项 但我发现没有一个答案有意义 所以我想开始一个新的讨论 我不想从 UserCo
  • 预加载图像并在加载时显示微调器

    Hy 我使用 uploadify 上传一些图像 在我在列表中显示所有图像拇指后 当我单击图像拇指时 会使用此功能在 div 中打开更大的图像 thumbs li a click function var largePath this att
  • 在模式匹配时修改字段

    我今天第一次尝试 Rust 编写 XML 分词器 自然不明白所有内容 我有一个带有可以采用枚举值的字段的结构 enum State Outside InATag str struct Tokenizer state State In a i
  • 如何禁止在webpack编译过程中替换process.env变量?

    Story 我正在开发 AWS Lambda 函数并使用编译代码webpack 我读过一些文章 似乎process env变量在编译期间自动替换 虽然这很酷 但我想禁止这种行为 Why 因为我使用 AWS Lambda 仪表板传递环境变量
  • golang docker run的无限for循环问题

    我尝试做简单的无限循环任务 不使用 docker 也能正常工作 但是当我使用 docker 时 它只无限执行 for 循环的 else 部分 实际上可能是什么问题 docker 是否有无限循环的问题 我的 main go 文件如下所示 pa
  • Word 2010 Interop PDF 导出缺少边框线

    我有一个奇怪的问题 我正在使用 Word 2010 Interop 将 WordML 文档导出为 PDF 有一个带有顶线和底线的页脚
  • 带 ViewPager 的 CollapsingToolbarLayout 内的片段不会向下滑动

    我有一个带有 CollapsingToolbarLayout 和 TabLayout 的活动 当我左右滑动时 它在片段之间完美移动 然而 当我尝试向下滚动 屏幕截图中的红色箭头 时 它会忽略它 我尝试向片段添加 ScrollView 但它没