AppBarLayout 以编程方式更改偏移量

2023-11-23

如何以编程方式更改 AppBarLayout 的偏移量?

当 Activity 首次加载时,我希望 AppBarLayout(部分展开)有一定的偏移量,然后用户可以进一步展开它或折叠它。当前的行为是当 Activity 首次加载时它完全展开。

my.xml

<android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

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

            <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_collapseMode="parallax">

                <ImageView
                    android:id="@+id/image"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:scaleType="centerCrop"
                    android:src="@drawable/pic"/>

                <View
                    android:id="@+id/overlay"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="@drawable/overlay"
                    app:layout_collapseMode="pin"/>
            </FrameLayout>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                app:title="@string/app_name"/>

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

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

需要支持API 16+

Thanks!


用这个:可滚动的应用栏

你只需更换你的AppBarLayout with:

<it.michelelacorte.scrollableappbar.ScrollableAppBar
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="380dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:fitsSystemWindows="true">
</it.michelelacorte.scrollableappbar.ScrollableAppBar>

然后:

ScrollableAppBar appBarLayout = (ScrollableAppBar) findViewById(R.id.appbar);

//To give the effect "in the middle" of the image (like gif)
appBarLayout.collapseToolbar();

Output:

enter image description here

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

AppBarLayout 以编程方式更改偏移量 的相关文章

随机推荐

  • 使用 python 请求进行 twitter 抓取时如何执行 oauth

    我正在尝试检索用户最近的 100 条推文 它与 Python 中的 tweepy 模块配合良好 但是我怎样才能对 python 中的请求做同样的事情呢 我想要做 import requests r requests get https ap
  • 尝试使用 DatePicker 时不起作用[重复]

    这个问题在这里已经有答案了 可能的重复 Android CalendarView 类找不到 我尝试在布局中放置一个日期选择器 但它只显示 DatePicker 和这个错误 The following classes could not be
  • 关于javaagents的教程[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想了解一些有关 javaagents 的知识 但研究并不容易 大部分结果是指JADE 我知道java代理有两层含义 用 Java 编写的代理是代理
  • 如何在 x86 中使用 CPUID 指令接收 L1、L2 和 L3 缓存大小

    我在准备一个汇编x86项目时遇到了一个问题 该项目的主题是编写一个获取L1数据 L1代码 L2和L3缓存大小的程序 我尝试在英特尔文档和互联网中查找一些内容 但失败了 主要问题是 对于 AMD 处理器 只需将 EAX 寄存器设置为 8000
  • Internet Explorer 自动切换到兼容模式(IE9 和 IE10)

    在我网站的某些页面上 Internet Explorer 自动切换到兼容模式并尝试在兼容视图 IE7 模式 中呈现该页面 URL 也会添加到兼容性视图列表中 就我而言 这是由于某些 CSS 使用 Type 1 字体 黑体 Internet
  • 如何放心地登录到文本文件中可打印的内容

    我正在研究一种方法 尝试使用 log4j 将默认的放心日志 转到控制台 更改为文件 这是一个 JUnit 项目 其方法最终调用 REST 外观 该外观具有类似这样的方法 private ResponseSpecification respo
  • Dask For 并行循环

    我正在尝试找到使用带有 dask 延迟的 for 循环的正确语法 我找到了几个教程和其他问题 但没有一个适合我的条件 这是非常基础的 首先 这是并行运行 for 循环的正确方法吗 time list names a b c d keep r
  • 如何以角度2分割字符串

    我有一个电子邮件发送场景 其中有一个 收件人 输入框 您要向其发送消息 app html
  • 无法在 Eclipse 中将库添加到 Android 项目

    我正在尝试将库添加到 eclipse 内的现有项目中 我将项目文件夹本身和库文件夹保存在桌面上标记为 ANDROID 的文件夹中 当我尝试导入 gt 现有代码到工作区 gt 选择 ANDROID 时 唯一添加的项目是应用程序本身 而不是库
  • iPhone - [NSUserDefaults standardUserDefaults] 文件存储在计算机上的哪里?

    在 iPhone 上运行应用程序时 例如 当您可以以另一种方式测试某些 GPS 或相机功能时 我在哪里可以找到并检查 NSUserDefaults 创建的文件以保存 standardUserDefaults 我正在运行 XCode 4 它位
  • 如何使用调查包计算比例?

    这只是一个非常简单的问题 但我只是无法从网络和书籍中找到合适的函数来使用 这是我从这里的一篇文章中得到的一个例子 df lt data frame sex c F M F M M M F F married c 1 1 1 1 0 0 1
  • 以编程方式检查 Windows 应用商店应用程序更新

    我实际上正在尝试找到一种方法来检查 Windows 应用商店应用程序是否有可用更新 有没有办法用 API 来做到这一点 谢谢 埃萨姆 Windows 应用商店没有任何专门用于检查更新的 API 有一个相当简单的解决方法 var packag
  • libc6:i386 和 libc6-i386 有什么区别

    我在用着Ubuntu 14 04 2 LTS n l 这里有libc我安装了 dpkg list grep libc6 ii libc6 amd64 2 19 0ubuntu6 7 amd64 Embedded GNU C Library
  • MongoDB 聚合/组/求和查询转换为 pymongo 查询

    我有一组条目goals集合看起来像这样 user adam position attacker goals 8 user bart position midfielder goals 3 user cedric position goalk
  • 如何使用 NodeJS 列出 GCS 存储桶中的目录

    I 如果您正在使用 NodeJS GCS 客户端库并想要列出存储桶中的目录 您该怎么做 首先将 NodeJS GCS 客户端库的依赖项添加到您的package json通过运行以下命令创建文件 npm i google cloud stor
  • .NET 垃圾收集器遇到麻烦。阻塞 15-40 分钟

    一些事实 我们开发了 wcf 服务 充当客户端和数据库之间的层 它是自托管的并作为 Windows 服务运行 该服务保留了多个缓存 其中最大的缓存大约为 1 2GB 总内存使用量通常约为 5 8GB 连接是双工的 使用 tcp 协议 序列化
  • eval() 不在运行时分配变量

    I use eval 将列表分配给 var eval mylist 1 2 3 但是当我运行它时 我得到了一个语法错误 它出什么问题了 如果我不能在eval 如何在运行时分配 var Use exec对于声明 gt gt gt exec l
  • 应用程序配置错误 抱歉,myapp 尚未获准在应用程序中心显示。在 Android 应用程序中共享

    当我在 Facebook 上点击我的应用程序名称时 它重定向到 https www facebook com games app id 827708240586758 并显示 应用程序配置错误抱歉 我的应用程序尚未获准在应用程序中心显示 我
  • 如何在不使用故事板的情况下创建 UICollectionView?

    我在网上找到了一些不错的 UIcollectionview 教程 http www raywenderlich com 22324 beginning uicollectionview in ios 6 part 12 http ashfu
  • AppBarLayout 以编程方式更改偏移量

    如何以编程方式更改 AppBarLayout 的偏移量 当 Activity 首次加载时 我希望 AppBarLayout 部分展开 有一定的偏移量 然后用户可以进一步展开它或折叠它 当前的行为是当 Activity 首次加载时它完全展开