下面是AppBarLayout结合NestedScrollView实现的工具栏向上滚动效果截图: ?...2、AppBarLayout内部的高度也可能变化,比如它嵌套了可折叠工具栏布局CollapsingToolbarLayout,有关可折叠工具栏布局的详细介绍参见《Android开发笔记(一百三十六)可折叠工具栏布局...所以本文只做下面三个标志的概念解释,有关的效果图参见《Android开发笔记(一百三十六)可折叠工具栏布局CollapsingToolbarLayout》。...3、exitUntilCollapsed : 该标志保证页面上至少能看到最小化的工具栏,不会完全看不到工具栏。具体的滚动说明如下所示: 向上滚动:头部先往上收缩,一直滚到折叠的最小高度。...4、enterAlwaysCollapsed:该标志一般跟enterAlways一起使用,它与enterAlways区别在于有折叠操作,而单独的enterAlways没有折叠。
:drawable/ic_dialog_email" /> android.support.design.widget.CoordinatorLayout> 这是上面布局引用的NestedScrollView...都需要设置这个flag, 没有设置这个flag的view将被固定在屏幕顶部。...CollapsingToolbarLayout可以通过app:contentScrim设置折叠时工具栏布局的颜色,通过app:statusBarScrim设置折叠时状态栏的颜色。...NestedScrollView 在新版的support-v4兼容包里面有一个NestedScrollView控件,这个控件其实和普通的ScrollView并没有多大的区别,这个控件其实是Meterial...记住,要把带有scroll flag的view放在前面,这样收回的view才能让正常退出,而固定的view继续留在顶部。
从头开始 先建立一个名为 Folding 项目,然后在创建一个Activity, OneActivity 这个Activity带有自身的XML布局文件, ** 标题栏折叠** 首先打开activity_one.xml...嵌套好之后设置一些简单的样式即可 到这一步基本上这个折叠布局已经完成了,然后只要填充相关的控件即可实现效果,要注意的点是Toolbar中放置的是你需要折叠和展开的控件,而AppBarLayout中放置的是...Toolbar折叠之后显示的控件,这个地方你可以放任何控件,前提是你得避免控件之间的冲突。...的总高度就会超过手机屏幕,形成滑动之后图片向上面展示的效果,其实加了NestedScrollView之后,即使里面什么东西都没有,你照样可以滚动,但是如果你用ScrollView就不行,它里面就必须要有东西才行....widget.NestedScrollView> android.support.design.widget.CoordinatorLayout> Github地址
引言 最近,在做公司一个design折叠效果的时候遇到个问题,就是我们本身app的方法数太多了,dex分包技术还没搞定。不得不尽量缩减一些不必要的包、类。...当我们引入RecyclerView的时候,恰好是压死骆驼的最后一根稻草,故不得不采用其他方案来代替RecyclerView 和 CollapsingToolbarLayout实现的折叠效果。...本文试着采用 NestedScrollView 嵌套 ListView的方法来实现折叠效果。具体结果如图所示: ?...true,不过这里兼容性还是存在问题的,特别是android 4.4版本的折叠布局的透明statusbar,不知道改为有没更好的方式。...app:layout_scrollFlags="scroll|exitUntilCollapsed" 表示CoordinatorLayout的依赖元素滚动的时候,进行折叠。
本文的目的就是详细地介绍怎么样通过 AppBarLayout 与 CoordinatorLayout 的配合使用,去定制一个可折叠的 Toolbar。...CoordinatorLayout、AppBarLayout、Toolbar 之间的关系 有同学可能不是太了解 CoordinatorLayout 这个类,其实没有太大的关系,下面我会简单介绍一下它的大致功能.../android.support.design.widget.CoordinatorLayout> 上面布局文件中,NestedScrollView 就是那个配套的滑动组件,它需要和 AppBarLayout...所以除了使用 NestedScrollView,我们还经常使用 RecyclerView 和 SwipeRefreshLayout 作为配套的嵌套滑动组件,这是其它博文都没有提到的,希望大家注意。...> android.support.v4.widget.NestedScrollView> android.support.design.widget.CoordinatorLayout
app:contentScrim指定CollapsmgToolbarLayout在趋于折叠状态以及折叠之后的背景色, 其实CollapsingToolbarLayout在折叠之后就是一个普通的Toolbar..."> android.support.v4.widget.NestedScrollView> android.support.design.widget.CoordinatorLayout...由于CoordinatorLayout本身已经可以响应滚动事件了, 因此我们在它的内部就需要使用NestedScrollView或RecyclerView这样可以响应滚动事件的布局。...只不过Android5.0系统之前是无法对状态栏的背景或颜色进行操作的,那个时候也没有Matenal Design的概念。 而Android5.0及之后的系统就支持这个功能。...然后在FruitAcuvityTheme中将状态栏的颜色指定成透明色, 由于values-v21目录是只有Android5.0及以上的系统才会去读取的, 因此这么声明是没有问题的。
CoordinatorLayout通过协调调度子布局的形式实现触摸影响布局的形式产生动画效果。...常常与CoordinatorLayout一起使用的控件有AppBarLayout、CollapsingToolbarLayout、NestedScrollView以及Toolbar。...这个动画效果最重要重点使用了CollapsingToolbarLayout可实现Toolbar的折叠效果。...,当CollapsingToolbarLayout完全收缩后,Toolbar还可以保留在屏幕上,在折叠的时候最后固定在顶端; parallax:视差模式,在折叠的时候会有个视差折叠的效果。...5总结 简单介绍CoordinatorLayout的用法,没有深入介绍,大家如果需要深入了解这个控件的使用,在这里推荐一篇我认为写的好的博客给大家深入学习。
CoordinatorLayout是design包中的控件,作为外层控件可以协调子控件从而实现炫酷的效果等。...> 外层是CoordinatorLayout,然后是AppBarLayout,然后是内容区和FloatingActionButton 这个AppBarLayout是有固定高度的,然后里面包着Toolbar...,Toolbar外层是CollapsingToolbarLayout,是可折叠的 CollapsingToolbarLayout主要参数是app:layout_scrollFlags: scroll :...Toolbar主要参数app:layout_collapseMode: pin :固定模式,在折叠的时候最后固定在顶端 parallax :视差模式,在折叠的时候会有个视差折叠的效果。...只有在内容区可滑动的状态下会触发效果,所以内容区外层是NestedScrollView,app:layout_behavior="@string/appbar_scrolling_view_behavior
滚动事件,那么在CoordinatorLayout布局里其它标记了app:layout_behavior的子View(LinearLayout、RecyclerView、NestedScrollView...layout_scrollFlags说明 value comment scroll 所有想滚动出屏幕的view都需要设置这个flag, 没有设置这个flag的view将被固定在屏幕顶部。...滚动退出屏幕,最后折叠在顶端 【注意】: 设置了layout_scrollFlags标志的View必须在没有设置的View的之前定义,这样可以确保设置过的View都从上面移出, 只留下那些固定的View...布局下包裹一个可以滑动的布局,比如 RecyclerView,NestedScrollView(经过测试,ListView,ScrollView不支持)具有滑动效果的组件。...并且给这些组件设置如下属性来告诉CoordinatorLayout,该组件是带有滑动行为的组件,然后CoordinatorLayout在接受到滑动时会通知AppBarLayout 中可滑动的Toolbar
在RecyclerView或者任意支持嵌套滚动的view比如NestedScrollView上添加app:layout_behavior。...记住,要把带有scroll flag的view放在前面,这样收回的view才能让正常退出,而固定的view继续留在顶部。 此时,你应该注意到我们的Toolbar能够响应滚动事件了。 ?...---- Creating Collapsing Effects(制造折叠效果) 如果想制造toolbar的折叠效果,我们必须把Toolbar放在CollapsingToolbarLayout中: .support.design.widget.CollapsingToolbarLayout...,然后在它折叠的时候渐渐淡出。...当滚动发生的时候,CoordinatorLayout会尝试触发那些声明了依赖的子view。
滑动面板布局 SlidingPaneLayout Android 5.0 嵌套滚动视图 NestedScrollView Android 5.0 appcompat-v7 工具栏 Toolbar Android...CoordinatorLayout Android 5.0 悬浮按钮 FloatingActionButton Android 5.0 底部弹窗 BottomSheetBehavior Android...6.0 应用栏布局 AppBarLayout Android 5.0 可折叠工具栏布局 CollapsingToolbarLayout Android 5.0 侧滑删除 SwipeDismissBehavior...Android 6.0 以上的新控件,在项目中使用的时候,可分为三大类: 1、第一类是内核提供的控件,位于SDK的android.jar中。...GridView NestedScrollView:替代ScrollView Snackbar:替代Toast FloatingActionButton:替代ImageButton TextInputEditText
问题 上次关于仿稀土掘金的文章发出后,我看到有人在微信后台跟我留言,也有人在github上给我提问题,大约问的最多的有三个问题。 原图是沉浸状态栏,你的这个模仿的效果图没有做到。...原图fragment中有列表,你的没有,为什么我放上ListView之后,标题栏不能折叠等等 现在我们就从以上三个问题,进行修改和加强,优化,在讲之前,先看效果图对比,如果感觉好,你们再继续往下看。...第三个问题 CoordinatorLayout协同布局在一般只结合RecyclerView和NestedScrollView使用,所以你用ListView没有效果,如果你硬要用ListView那就比较麻烦了...你也可以使用listView.setNestedScrollingEnabled(true)也行,也能做到,但是貌似这两种方法只能支持在android5.0以上的手机才能用,所以还是建议大家使用RecyclerView...这就是Material Design系列第六篇之《Android Material Design系列之CoordinatorLayout,CollapsingToolbarLayout等》。
这个小库演示了如何将可折叠工具栏添加到您的应用程序中,并带有可移动和扩展的头像,类似于在Telegram Android应用中所看到的。...国外非常流行的一种设计~ 温馨提示:Collapsing Avatar Toolbar 的更多使用请直接看下方的代码例子片段,或查看官方文档。...app:collapsedTextSize="@dimen/collapsedTextSize" app:expandedTextSize="@dimen/expandedTextSize" > 3、 android.support.design.widget.CoordinatorLayout...> android.support.design.widget.CollapsingToolbarLayout> android.support.design.widget.AppBarLayout...android.support.design.widget.CoordinatorLayout>
本文尝试用自定义 Behavior 实现一个带有这种效果的日历。...onNestedPreFling 当 RecyclerView 或 NestedScrollView 滑动时,CoordinatorLayout 的子控件 Behavior 可以接收到对应的回调。...= 0; } onNestedPreScroll 这个方法是在准备滚动之前调用的,它带有滚动偏移量 dy。...,消费掉这个偏移量,转化成折叠的效果。...效果 看一下最终的效果: [strip] 这种实现方式的优点是代码量少,用起来方便。使用了 MaterialCalendarView 并且没有修改它的源码,意味着支持它的所有功能。
在 RecyclerView 或其他类似 NestedScrollView 这样的可以嵌套滚动的 View 中加入 app:layout_behavior。..."> 当 CoordinatorLayout 发现 RecyclerView 中声明了这一属性,它就会搜索包含在其下的其他 view 看有没有与这个 behavior 关联的任何相关 view。...创建折叠效果 如果想创建折叠 ToolBar 的效果,我们必须将 ToolBar 包含在 CollapsingToolbarLayout 中: android.support.design.widget.AppBarLayout...谨记 ScrollView 不能与 CoordinatorLayout 一起使用。你将需要像这个示例中展示的那样用 NestedScrollView 来代替。...将你的内容包含在 NestedScrollView 中,然后在其上添加 app:layout_behavior 就会使你的滚动行为预期工作。
CoordinatorLayout 传递滑动事件的,其实相当于 NestedScrollingChild 最后真正消费事件的,其实是 Behavior的子类(自定义的,系统的) ---- NestedScrollView.../NestedScrollView.html 可以发现,其实就是一个ScrollView 并且可以在老版本,新版本的android下面使用。...子类绑定的View 简单的思路: NestedScrollView直接会发送事件 CoordinatorLayout也就是外面parent的会自动接收 我们只需要写一个Behavior子类来消费即可...\nY\nZ"/> android.support.v4.widget.NestedScrollView> android.support.design.widget.CoordinatorLayout....widget.NestedScrollView> android.support.design.widget.CoordinatorLayout> 其他一样,只是给最左边的添加了Behavior
指定在折叠之后的背景色 4.android.support.design:expandedTitleGravity e.g. ...在折叠的时候 状态栏的背景颜色 10。...> android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/....widget.NestedScrollView> android.support.design.widget.CoordinatorLayout> 里面的有个imageview,注释已经写的很清楚了...//设置和获取折叠之后的标题位置 getCollapsedTitleGravity(); setCollapsedTitleGravity(int gravity) //获取和设置折叠之后的背景
nR\nS\nT\nU\nV\nW\nX\nY\nZ\nW\nX\nY\nZ" /> android.support.v4.widget.NestedScrollView> android.support.design.widget.CoordinatorLayout...这里Toolbar会一直显示 ---- Toolbar和NestedScrollView联动 前面不能联动,是因为没有接收的behavior 我们在Toolbar外面添加一个 android.support.design.widget.AppBarLayout...其中snap是后面添加的) scroll: 代码中枚举SCROLL_FLAG_SCROLL 所有想滚动出屏幕的view都需要设置这个flag, 没有设置这个flag的view将被固定在屏幕顶部。...---- 中场小节 CoordinatorLayout中, 如果NestedScrollView要和Toolbar互动的话(CollapsingToolbarLayout等之后在了解,这里不涉及)...a5-2.gif 大体就这样了 代码见后面的地址 ---- 简单小节 CoordinatorLayout中,NestedScrollView和Toolbar联动 注意Toolbar外面要套AppBarLayout
先来一个什么鬼样式都没有的: <?xml version="1.0" encoding="utf-8"?...Bottom Sheets BottomSheetBehavior应用于CoordinatorLayout的一个子类, 使其成为持久的底部工作表。...:gravity="center" android:onClick="showBehavior" android:text="测试" /> NestedScrollView...如果已经在Activity使用CoordinatorLayout,添加底部表单很简单: 将任何视图添加为CoordinatorLayout的直接子视图。...app:behavior_peekHeight:折叠状态的窥视高度。 app:behavior_skipCollapsed:如果底部表单可隐藏,并且设置为true,则表单不会处于折叠状态。
在没有ConstraintLayout的时候,要实现嵌套滚动布局,通常都是使用CoordinatorLayout来实现,但是这个东西的使用局限性比较大,能非常简单的实现的嵌套布局,就那么几种,如果要实现一些特别的滚动效果...这种方案的布局结构如下: CoordinatorLayout --------AppBarLayout ----------------MotionLayout --------NestedScrollView...实际上就是利用MotionLayout来替代之前在AppBarLayout里面的CollapsingToolbarLayout,借助MotionLayout来实现之前CollapsingToolbarLayout的一些折叠效果...的方式,则没有这个限制,希望MotionEditor能早日改善这个问题。...没有任何区别。
领取专属 10元无门槛券
手把手带您无忧上云