CollapsingToolBarLayout 与 TabLayout 和 ViewPager

2023-11-21

Layout example from app

我尝试使用 CordinatorLayout 和 CollapsingToolbarLayout、TabLayout 和 ViewPager 创建类似于图像中的布局。 我的布局无法正确呈现。

这是我的布局

<?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: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:background="?attr/colorPrimary"
        android:fitsSystemWindows="true">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginStart="48dp"
            app:expandedTitleMarginEnd="64dp"
            android:fitsSystemWindows="true">

            <ImageView
                android:id="@+id/image"
                android:src="@drawable/thumb_placeholder"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="centerCrop"
                android:fitsSystemWindows="true"
                app:layout_collapseMode="parallax"/>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:layout_collapseMode="pin" />

            <android.support.design.widget.TabLayout
                xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:app="http://schemas.android.com/apk/res-auto"
                android:id="@+id/movie_tabs"
                app:tabGravity="fill"
                app:tabMode="fixed"
                android:background="@color/colorPrimary"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:tabTextColor="@color/textColorPrimary"
                app:tabSelectedTextColor="@color/textColorPrimary"
                app:tabIndicatorColor="@color/textColorPrimary"
                app:tabIndicatorHeight="4dp"
                app:paddingStart="20dp"
                app:paddingEnd="20dp">
            </android.support.design.widget.TabLayout>

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

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

    <android.support.v4.view.ViewPager
        android:id="@+id/movieviewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </android.support.v4.view.ViewPager>

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

Testing it on my device i get this enter image description hereenter image description here

如果 ViewPager Fragment 有内容,则 ViewPager Fragment 会覆盖 TabLayout;如果没有内容,则将 TabLayout 显示在 ImageView 之上。 我做错了什么,我仍然是一个 Android 菜鸟。


  1. CollapsingToolbarLayout需要一个minHeight。这告诉家长AppBarLayout它能崩溃到什么程度。我假设你想要ToolbarTabLayout停留在屏幕顶部(因为您正在使用exitUntilCollapsed滚动标志)。我会让这两个都有android:layout_height="?attr/actionBarSize"并使用该值的两倍作为minHeight of the CollapsingToolbarLayout.

  2. ViewPager needs app:layout_behavior="@string/appbar_scrolling_view_behavior".

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

CollapsingToolBarLayout 与 TabLayout 和 ViewPager 的相关文章

  • Twowayview 滚动时自动添加内边距

    我在用双向视图 https github com lucasr twoway view在我的一个项目中 这是android的扩展回收者视图 https developer android com reference android supp
  • 对话框片段嵌入取决于设备

    在我的应用程序中 用户从联系人或通话记录中选择电话号码 选择联系人非常简单 并且在手机和平 板电脑上都可以很好地工作 i e 在手机上会弹出新的全屏活动 在桌子上我会看到带有联系人列表的漂亮弹出对话框 似乎无法从通话记录中选择电话号码 因此
  • 当前版本的Android Gradle插件不支持按需配置

    升级到 Android Studio 3 1 2 后 出现以下错误 当前版本的 Android Gradle 插件不支持按需配置 因为您使用的是 Gradle 4 6 或更高版本 建议 通过在 gradle properties 文件中设置
  • 如何在 Picasso 中使用磁盘缓存?

    我正在使用 Picasso 在我的 Android 应用程序中显示图像 load image This is within a activity so this context is activity public void loadIma
  • 使用Picasso从url保存图像?

    我正在尝试使用 API Picasso 保存图像 为了做到这一点 我正在尝试使用Target保存 但我无法完成这项工作 我怎么能这样做呢 Trying save image public static void imageDownload
  • android.view.InflateException:二进制 XML 文件行 #11:膨胀类 ImageView 时出错

    我只是尝试制作一个小的 android java xml 应用程序来计算游戏的分数 它给了我这个错误 Error inflateing class ImageView 有人知道解决方案吗 我实际上搜索了 ppl 说添加这个 android
  • 如何在Android中访问现有的sqlite数据库?

    到目前为止 我们已经在 Android 中开发了在运行时创建数据库的应用程序 我们想知道如何在 Android 应用程序中访问预构建或现有的数据库 sqlite 文件 请提供详细信息 查看文档android database sqlite
  • 作为附件的 Android 设备

    我有 2 个 Android 设备 我想用 USB OTG 电缆连接它们 并在两个设备之间进行来回通信 据我了解 一台 Android 设备将充当 USB 主机 运行 4 4 的 Nexus 7 另一台 Android 设备将充当 USB
  • 在没有 BluetoothManagerCallback 的情况下调用 getBluetoothService

    我正进入 状态getBluetoothService called with no BluetoothManagerCallback在我的 Android 应用程序中经常出现错误 我不知道是什么原因导致这个或任何有关蓝牙管理器回调的事情 谁
  • Android ViewModel LiveData 在按钮单击时更新视图

    我正在关注这个tutorial https developer android com topic libraries architecture guide html common problems faced by app develop
  • 该项目可能使用的 Gradle 版本不包含“compileSdkVersion()”方法

    当我尝试运行最初在 Eclipse ADT 上创建的项目时 我遇到了这个问题 Error 17 0 Gradle DSL method not found compileSdkVersion Possible causes ul li Th
  • java.net.ProtocolException:流意外结束

    我面临一个奇怪的问题 并且无法调试它 我已经实现了上传数据流的逻辑 并使用 Volley 来实现相同的功能 我在HurlStack addBodyIfExistsapi 以便可以处理 application octet stream 类型的
  • Flutter - 删除 ListView 中项目之间的空间

    我正在使用 ListView builder 函数来创建项目列表 然而 iOS 中每个项目之间的空间很大 截图 你知道如何删除项目吗 看来是默认的 因为我没有添加它 code 列表显示 return Scaffold body ListVi
  • Android 媒体播放器搜索栏

    我有一个创建 播放和处理媒体播放器 只是音频 的服务 但我在主要活动中有一个搜索栏 我想自然地显示音频文件的进度并允许用户搜索到不同的位置 我花了很长时间才弄清楚 将 UI 中的搜索栏连接到服务中的媒体播放器的最佳或正确方法是什么 我将这样
  • Android 解析 JSON 卡在 get 任务上

    我正在尝试解析一些 JSON 数据 我的代码工作了一段时间 我不确定我改变了什么突然破坏了代码 当我运行代码时 我没有收到任何运行时错误或警告 我创建一个新的 AsyncTask 并执行它 当我打电话时 get 在这个新任务中 调试器在此行
  • 运行 Android 应用程序时出现错误

    我已经使用 Eclipse 创建了一个 Android 应用程序 但应用程序未在 AVD 上运行 它显示 不幸的是已停止工作 日志猫消息如下 07 29 04 59 50 789 W dalvikvm 784 threadid 1 thre
  • 将触摸事件从 NestedScrollView 传递到父视图

    我在 NestedScrollView 下方有一个 ViewPager 宽度一些顶部填充 以及 ClipToPadding false 和透明背景 如图像 我的 ViewPager 无法获取触摸事件并且无法工作 我怎么解决这个问题 我无法更
  • 传递 Android DialogFragment 参数时,onCreateDialog 捆绑参数意外为 null

    我正在尝试使用 DialogFragment 在 Android 中显示一个基本对话框 并使用对话框消息的参数 如中所述StackOverflow线程 https stackoverflow com questions 15459209 p
  • Android Volley - 发布请求 - 无法在线工作

    我试图通过 Volley 发出 POST 请求 它在我的本地主机中工作得很好 但是当我将它移动到网络服务器时 响应为空 Java代码 RequestQueue queue Volley newRequestQueue this String
  • 如何减少 Android 中浮动 editText 提示和 editText 框之间的空间?

    我有一个带有浮动提示的 EditText 但我想知道如何减少浮动提示和 EditText 框之间的空间 现在我的用户界面看起来像https i stack imgur com ltfra jpg https i stack imgur co

随机推荐

  • Pyplot 交互式缩放

    我想显示首次显示时放大的图像 但仍然可以使用图窗工具栏中的交互式 重置原始视图 按钮缩小到全尺寸 裁剪是完全不可接受的 使用plt axis x0 x1 y0 y1 确实允许平移 但交互式窗口不会重置为全尺寸 有没有办法触发情节缩放或以其他
  • AWS Lambda HTTP API 网关集成上不可能实现 CORS

    创建了返回 3 个 HTTP 标头的 AWS Lambda 函数 NodeJS aaa Access Control Allow Origin 和 bbb exports handler async event gt const respo
  • 如何判断一棵二叉树是否完整?

    完全二叉树被定义为其中每个级别 可能除了最深的级别 都被完全填充的二叉树 在最深层 所有节点必须尽可能位于左侧 我认为一个简单的递归算法将能够判断给定的二叉树是否完整 但我似乎无法弄清楚 如同 height t if t NULL then
  • 从关系中选择最常见的值 - SQL 语句

    我的数据库中有一个表 其中包含许多记录 某些记录的其中一列共享相同的值 例如 id name software 1 john photoshop 2 paul photoshop 3 gary textmate 4 ade firework
  • 从 Google App Engine 导出/导入数据存储

    我想将 App Engine 中运行的数据存储导出到应用程序的本地 独立 版本中 有人知道我该怎么做吗 我一直在 App Engine 仪表板中查找 但找不到它 查看文档上传和下载数据
  • 如何通过 RDP 连接到我的 Azure 云服务? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 正如我所读到的 每个 Azure 云服务背后都有一个虚拟机 对吗 我知道 对于虚拟机 我可以单击 连接 按钮来获取 rdp 文件以进行远程登录 但是 对于我的云服务 正在运行 连接
  • Firebase 存储对象的下载 URL 是否永久存在?

    当您将文件上传到 Firebase 的存储然后询问对象 URL 时 您会得到一个可公开访问的 URL 例如http firebasestorage googleapis com v0 b appname o filename alt med
  • Android:在哪里可以找到 RadioButton Drawable?

    好的 我正在尝试创建一个名为的自定义视图CheckedRelativeLayout 它的目的与CheckedTextView 以便能够在您想要选择的项目列表中或在Spinner 现在一切正常 我延长了RelativeLayout并实施了Ch
  • 是否可以代表用户在我的网站上禁用第三方 cookie?

    我有一个从另一个网站加载资源的网站 我已经能够确定 第三方网站在用户的浏览器上放置cookie 如果我在浏览器设置中禁用第三方 Cookie 则第三方网站将无法再在浏览器上放置 Cookie 该资源仍然可以正常工作 我想知道我是否可以从我的
  • 内核崩溃后获取 Linux 内核调试信息

    有没有办法在内核崩溃发生后获取内核以前的调试信息 我正在尝试开发一个内核模块 它基本上捕获内核网络堆栈内IP层中的IP数据包 经过一些修改后 我必须将相同的数据包发送回NIC进行传输 在所有这些过程中 我在以下的帮助下编写调试信息print
  • 在div中隐藏滚动条

    有没有办法使用CSS隐藏滚动条同时仍保留其功能 甚至使其透明或与背景颜色相同也可以 我必须在 JavaScript 中执行此操作吗 className overflow auto overflow y hidden 我相信用户必须使用鼠标滚
  • 当绑定的列表视图没有项目时显示一些文本

    以下是我的列表视图的语法 它绑定到一个类
  • 在 FreeAndNil 之后使用对象时会发生什么?

    在我的Delphi7中这段代码 var MStr TMemoryStream FreeAndNil MStr MStr Size 0 生成 AV 模块 Project1 exe 中地址 0041D6D1 处的访问冲突 读取地址 000000
  • HttpListener 服务器标头 c#

    我正在尝试为个人项目编写一个 C http 服务器 我想知道如何将返回的服务器标头从 Microsoft HTTPAPI 2 0 更改为其他内容 public class HttpWebServer private HttpListener
  • 使用单击一次部署时出现安装问题

    我有一个 Wpf 应用程序 我希望将其部署在远程服务器上 以前我使用 VS2010 因此创建 setup msi 文件并部署到其他计算机上会很容易 目前我有VS2012 它没有设置部署选项 另外 我还阅读了有关 clickonce 应用程序
  • 如何在iOs中将UITabbarController添加到UIViewController

    如何用TabbarController推送Viewcontroller 在Viewcontroller XIB中 我创建了UITabbarController 然后我推送这个ViewController 但它没有出现UITabbarCont
  • 在 Java 中转义 SQL 字符串

    背景 我目前正在为企业 CMS 数据库 业务对象 开发 Java 前端 目前 我正在构建一个功能来允许用户构建自定义数据库查询 我已经实施了措施 以确保用户只能使用已批准用户访问的可用列和运算符的子集进行选择 例如 可以选择 SI EMAI
  • 将 string 转换为 int 而不丢失开头的零

    I tried int parse 和convert class 将字符串转换为int 当我正在转换时 我一开始就失去了 0 这是我不想要的 例如 09999 变成 9999 我不想要这个 我想保持原样 我怎样才能做到这一点 myNumbe
  • 任何编程语言中的变量名是否占用内存空间

    e g int a 3 1 and int a long variable name used instead of small one 3 2 1 和 2 哪一个将获得更多的内存空间或将获得相等的空间 在 C 和大多数静态编译语言中 变量
  • CollapsingToolBarLayout 与 TabLayout 和 ViewPager

    我尝试使用 CordinatorLayout 和 CollapsingToolbarLayout TabLayout 和 ViewPager 创建类似于图像中的布局 我的布局无法正确呈现 这是我的布局