纯享版-Android AppBarLayout + CollapsingToolbarLayout丝滑自动折叠、吸顶
使用CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+TabLayout+ViewPager,实现tab滑动吸顶效果简直完爆ScrollView实现的效果。
AppBarLayout + CollapsingToolbarLayout有几大有点:
1.无需处理ScrollView + ViewPager的滑动事件冲突
2. 无需关注ScrollView 和 RecyclerView滑动是否触底或者触顶
3. 实现起来超级简单,无需做其他优化,除非你有特殊需求。
废话不多数,直接上代码
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.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:background="@drawable/bg"android:fitsSystemWindows="true"><com.google.android.material.appbar.AppBarLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="@color/transparent"android:fitsSystemWindows="true"><!-- 从顶部滑出的部分 --><com.google.android.material.appbar.CollapsingToolbarLayoutandroid:id="@+id/coll"android:layout_width="match_parent"android:layout_height="wrap_content"android:fitsSystemWindows="true"app:layout_scrollFlags="exitUntilCollapsed|scroll"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/clTopHead"app:layout_collapseMode="parallax"android:layout_width="match_parent"android:layout_height="wrap_content"app:layout_constraintTop_toTopOf="parent"><ImageViewandroid:id="@+id/iv_top"android:layout_width="match_parent"android:layout_height="wrap_content"android:src="@drawable/bg_creator_top"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></com.google.android.material.appbar.CollapsingToolbarLayout><!-- 折叠、吸顶部分 --><LinearLayoutandroid:id="@+id/clContentTopParent"android:layout_width="match_parent"android:layout_height="86dp"app:layout_constraintTop_toTopOf="parent"><include layout="@layout/header_search_creator" /></LinearLayout></com.google.android.material.appbar.AppBarLayout><androidx.viewpager.widget.ViewPagerandroid:id="@+id/viewpager"android:layout_width="match_parent"android:layout_height="match_parent"app:layout_behavior="@string/appbar_scrolling_view_behavior" /></androidx.coordinatorlayout.widget.CoordinatorLayout>
其中AppBarLayout 和CollapsingToolbarLayout 分别对应的功能已经代码中已加了注释
属性layout_collapseMode是用来控制折叠效果的,可以不设置,默认是直接将top推上去。
app:layout_collapseMode="parallax"
可以看到明显的折叠效果。其他效果可以自行测试。
你没看错,布局文件到此就写完了,其他的业务代码需要你自己去完成了。
ViewPager,RecyclerView都使用系统的可以了,无需做额外的工作量。
当然,如果对效果不满意,可以自动定制化处理,上面的效果已经完全符合我的预期了。
好了,有问题我们继续探讨
纯享版-Android AppBarLayout + CollapsingToolbarLayout丝滑自动折叠、吸顶相关推荐
- 【使用篇】WebView 实现嵌套滑动,丝滑般实现吸顶效果,完美兼容 X5 webview
本文首发我的公众号徐公,收录于 Github·AndroidGuide,这里有 Android 进阶成长知识体系, 希望我们能够一起学习进步,关注公众号徐公,5 年中大厂程序员,一起建立核心竞争力 背 ...
- 油管613万播放的星巴克3小时背景音乐无广告纯享版下载
今天看到油管上有星巴克背景音乐的推荐,就点了进去 星巴克的背景音乐,确实算的上优质的白噪音,在家里也营造出咖啡厅的感觉. 然而,很多油管视频中间是插广告的,非常影响体验. 于是我找了个最高播放613万 ...
- #Android笔记# 超级足球app 开发总结(三)—— CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout实现两种折叠效果
最近利用业余时间,开发了一款基于懂球帝接口数据的足球资讯app,整体的UI也是仿照懂球帝设计的.这是一个比较综合的项目,用到了不少以前没用过的组件和api,而且产生了很多新的开发思路,有些实现方式也是 ...
- Android web界面丝滑进度条
文章目录 一.ProgressBar不平滑的原因 二.web平滑ProgressBar实现 三.SmoothProgressBar源码解析 一.ProgressBar不平滑的原因 Android编写W ...
- Android 软键盘丝滑切换(一)
在开发app中,软键盘弹出会有卡顿,闪一下的现象,会影响体验效果.为了实现微信软键盘与表情面板流畅的切换效果,查看了好多例子,查阅的很多资料,换了几种实现方式,都达不到流畅切换的效果,最终结合资料,参 ...
- 树状数组-Java代码纯享版
/**原始数组下标从0开始,bitTree数组下标从1开始,目的是为了符合lowbit操作,lowbit可以理解为构造新数组的一种方法(比较直观简单的理解) **/ public class BITD ...
- 英语句式参考纯享版 - 状语从句
[ 状语从句 ] 注意:时间.地点.原因.条件.方式.让步.目的.结果,状语修饰谓语, [ 时间状语从句 ] 注意:时间状语可以放在开头,用逗号隔开,也可以放在结尾,注意时态问题 (主将从现) 复合 ...
- android实现评论列表_【Android视图效果】分组列表实现吸顶效果
效果图 效果图 分析 先来分析一下,可以看到这是一个按月份分组的2行图片列表,列表顶部一个悬浮栏,会随着列表滑动而刷新,点击顶部栏,弹出了一个筛选框. 思路 1.列表部分 可以用RecyclerVie ...
- android 涂鸦 卡顿,涂鸦框架的优化——解决绘制时的卡顿问题,纵享丝滑
前言 V5.5: 增加优化绘制的选项,可优化绘制速度和性能,纵享丝滑. boolean optimizeDrawing = true; // 是否优化绘制,建议开启,可优化绘制速度和性能. Doodl ...
最新文章
- 动态添加跨行表格_学会这2招,轻松搞定数据透视表动态更新,效率猛增一倍...
- 2015: [Usaco2010 Feb]Chocolate Giving
- MyBatis 源码分析 - SQL 的执行过程
- 分析.cpp文件编译生成的汇编文件里语句的作用
- ssm框架逻辑删除mysql_MybatisPlus--CRUD接口及主键增长策略、自动填充、乐观锁更新数据...
- 论文浅尝 | 从具有数值边缘属性的知识图谱中学习嵌入
- react 怎么获取表格_react学习之js-xlsx导入和导出excel表格
- Redis Bitmap 位图
- 比豆二机器人好的机器人_扫地机器人和吸尘器哪个好
- Python地理数据处理库shapely支持函数总结
- JAVA 中 Redis与ehcache对比与使用
- {知道力} = {怎么做} + {为什么} 并且 {为什么} {怎么做}
- MyCat全局序列之本地文件方式
- 论文阅读笔记 | 分类网络——ParNet
- 【转载】原生Ajax写法
- Android5.0 下拉通知栏快捷开关的添加(必看)
- FreeRTOS笔记篇:第七章 -- 资源管理(互斥锁、二进制信号量、死锁)
- 【论文翻译】转移学习推断跨异构网络的社会联系
- Zotero:如何定制参考文献样式——以《世界经济》中文期刊为例
- 钉钉群添加机器人推送消息