首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AppBarLayout学习

滚动最顶层时,子View响应滚动事件,直至子View完全显示 exitUtilCollapsed:只要ScrollView向上滚动,子View立即响应滚动,直到达到最小高度 snap:当Scrollview...滚动到最顶层时,子View响应滚动事件。...exitUtilCollapsed 当向上滑动时,称为exit;向下滑动时,称为enter,这样理解起enterAlways和enterAlwaysCollpased就很好理解了,理解exitUtilCollapsed...向下滚动时,当ScrollView滚动顶部了,才继续滚动了。 snap snap是一个根据View在屏幕上显示范围进行调整的一个属性,看下效果其实就明白是怎么回事了。...监听AppBarLayout滚动 可以通过设置监听器来监听AppBarLayout的移动,比如说随着滚动,更改AppBarLayout的透明度,代码如下: app_bar.addOnOffsetChangedListener

1.1K30

细说 AppbarLayout,如何理解可折叠 Toolbar 的定制

当 AppBarLayout 中的内容要从 CoordinatorLayout 外面进入内部时,我们用 enter 指代这种行为,对应的手势就是向下滑动。...当 AppBarLayout 中的内容从 CoordinatorLayout 内部向外部方向移动时,我们用 exit 指代这种行为,对应的手势是向上滑动。...而 enterAlways 这个标志与 scroll 配合使用可以改变这种行为,enterAlways 起作用时,当手指向下滑动时,Toolbar 会和 NestedScrollView 一起滑动,它们是同时滑动的...Toolbar 先滑动,等到视图可见范围高度为 collapsed 指定高度时它会静止,等到 NestedScrollView 内容完全显示在 Toolbar 下方时它再一起滑动,它的动作是 3 段式的...也就是说 snap 代表一种吸附的行为,当一个滑动事件结束后,Toolbar 会向最接近它的边缘自行滚动。那什么是最近的概念呢?比如向上滑动时,如果滑过了一半它就向上滚动,否则滚动回原来的地方。

3.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CoordinatorLayout使用全解析

    exitUntilCollapsed:当你定义了一个minHeight,此布局将在滚动到达这个最小高度的时候折叠。 snap:当一个滚动事件结束,如果视图是部分可见的,那么它将被滚动到收缩或展开。...当CollapsingToolbarLayout的子布局设置了parallax模式时,我们还可以通过app:layout_collapseParallaxMultiplier设置视差滚动因子,值为:0~...在RecyclerView或者任意支持嵌套滚动的view比如NestedScrollView上添加app:layout_behavior。...假设你定义了一个最小高度(minHeight)同时enterAlways也定义了,那么view将在到达这个最小高度的时候开始显示,并且从这个时候开始慢慢展开,当滚动到顶部的时候展开完。...exitUntilCollapsed: 同样顾名思义,这个flag时定义何时退出,当你定义了一个minHeight,这个view将在滚动到达这个最小高度的时候消失。

    2.2K20

    Material Design之CollapsingToolbarLayout 相关属性和方法介绍

    enterAlways - 实现quick return效果, 当向下移动时,立即显示View(比如Toolbar)。...exitUntilCollapsed - 向上滚动时收缩View,但可以固定Toolbar一直在上面。...enterAlwaysCollapsed - 当你的View已经设置minHeight属性又使用此标志时,你的View只能以最小高度进入,只有当滚动视图到达顶部时才扩大到完整高度。...parallax - 设置为这个模式时,在内容滚动时,CollapsingToolbarLayout中的View(比如ImageView)也可以同时滚动,实现视差滚动效果,通常和layout_collapseParallaxMultiplier...然后里面的NestedScrollView这货。 它和scrollview 基本上一样  但是它支持嵌套滚动  嵌套滚动默认是启用的。

    96730

    Android开发笔记(一百三十五)应用栏布局AppBarLayout

    对于大家关心的额外功能,则主要有以下几点: 1、支持响应主体页面的滑动行为,即在主体页面上移或者下拉时,AppBarLayout能够捕捉到主体页面的滚动操作; 2、AppBarLayout捕捉到滚动操作之后...NestedScrollView多出来的功能,也就是跟AppBarLayout配合使用,以便触发Toolbar的滚动行为,你可以把它当作是兼容了Android5.0新特性的增强版ScrollView。...下面是AppBarLayout结合NestedScrollView实现的工具栏向上滚动效果截图: ?...同理,拉动AppBarLayout也有类似情况,当松开手指后,AppBarLayout得判断要不要继续向上收缩,或是继续向下展开。...然后主体向下滚动,滚到位后头部继续向下展开。 5、snap : 在用户手指松开时,系统自行判断,接下来是全部向上滚到顶,还是全部向下展开。

    2K40

    Flutter 首页必用组件NestedScrollView

    今天介绍的组件是NestedScrollView,大部分的App首页都会用到这个组件。 NestedScrollView 可以在其内部嵌套其他滚动视图的组件,其滚动位置是固有链接的。...滚动隐藏AppBar 比如实现如下场景,当列表滚动时,隐藏AppBar,用法如下: NestedScrollView( headerSliverBuilder: (BuildContext context...,用法如下: NestedScrollView( scrollDirection: Axis.horizontal, reverse: true, ... ) scrollDirection...reverse参数表示反转滚动方向,并不是由垂直转为水平,而是垂直方向滚动时,默认向下滚动,reverse设置false,滚动方向改为向上,同理水平滚动改为水平向左。...controller为滚动控制器,可以监听滚到的位置,设置滚动的位置等,用法如下: _scrollController = ScrollController(); //监听滚动位置 _scrollController.addListener

    4.3K10

    Android - 仿网易云音乐歌单详情页

    ,切换页面时就会出现闪烁的情况,而如果取的是缓存就不会有这样的问题,所以这里有个小技巧,就是起初Glide加载的图片就指定固定的大小(.override(120,120)),这样图片就会被缓存起来,等到跳转时就取缓存...其中StatusBarUtil,是一个为Android App 设置状态栏的工具类。...compile 'jp.wasabeef:glide-transformations:2.0.1' 4、上下滑动,渐变背景图透明度 由于NestedScrollView滚动监听只能在API23以上才能使用...binding.ivTitleHeadBg.setImageDrawable(drawable); } } } 这样基本的效果就实现啦,其中如有需要还可以做些额外的处理,如当背景图不透明时切换标题等...;4、NestedScrollView在Api23下的滑动兼容。

    1.4K10

    聊聊Android嵌套滑动

    我们仍然从它的touch事件处理流程开始看: 在它的 onInterceptTouchEvent 中,当手势是 MOVE 的时候, 如果是垂直方向滑动并且达到滑动定义的距离,就开始执行滑动: 当手势是...如果滑动的时候不拦截的话,手势事件会交给子view去处理,如果子view是可以滚动的,这时候就会有冲突,所有滚动的时候事件要拦截下来交给自己处理。...,让父布局不要拦截事件, 当 mIsBegingDragged 为true的时候,分发嵌套预滚动事件。...嵌套滚动方案的选择 有了这些接口之后,我们可以看到其实内置的Android 控件都支持了滑动嵌套,那么是否我们平时使用的方法都是正确的呢?...总结 到这里,Android的嵌套滑动机制就介绍完了。

    1.3K10

    第14章 使用Kotlin 进行 Android 开发(1)第14章 使用Kotlin 进行 Android 开发(1)

    另外,它还生成一个本地视图缓存,当第一次使用属性时,它将执行一个常规的findViewById。但在下一次使用属性的时候,视图将从缓存中恢复,因此访问速度将更快。...在Fragment中重写onHiddenChanged方法可以对Fragment的hide和show状态进行监听。...一般来说,在 Fragment 中应至少重写下面3个生命周期方法: onCreate() 当创建 Fragment 实例时,系统回调的方法。...onCreateView() 当第一次在 Fragment 上绘制UI时,系统回调的方法。...当执行一个 Fragment 事务时,也可以将该 Fragment 加入到一个由宿主 Activity 管辖的后退栈中,并由 Activity 记录加入到后退栈的 Fragment 信息,按下后退键可以将

    2.8K30

    嵌套滑动通用解决方案--NestedScrollingParent2

    京东首页 可见,在向上滑动页面时,当tabLayout滑动到顶部时,外层RecyclerView停止滑动,此时tabLayout即为吸顶状态,接着会 滑动ViewPager中的内层RecyclerView...所以按照正常处理滑动冲突的思路处理--当tab没到顶部时,parent拦截事件,tab到顶部时 parent就不拦截事件,但是由于手指没抬起来,所以这一事件序列还是继续给parent,不会到内部RecyclerView...2.2 再来看看NestedScrollView嵌套RecyclerView 关于NestedScrollView嵌套RecyclerView的情况,即头部和列表可以一起滑动。如下图: ?...NestedScrollView嵌套RecyclerView 参考这篇实名反对《阿里巴巴Android开发手册》中NestedScrollView嵌套RecyclerView的用法。...但其实在真实应用中,可能 头部 和 列表 的数据来自不同的接口,当列表的数据请求失败时要展示缺省图,但头部还是会展示。这时头部和列表 分开实现 是比较好的选择。 这里给出解决方案: <?

    3.8K31

    NestedScrolling机制之CoordinatorLayout.Behavior实战

    在上一讲中我们讲了NestedScrolling机制,其实android很多有些常用的控件都是支持NestedScrolling机制的,如RecyclerView,NestedScrollView等,...class RecyclerView extends ViewGroup implements ScrollingView, NestedScrollingChild2{} public class NestedScrollView...apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent...,但是并不是由target消耗的滚动时候触发,这个是水平滚动的实时距离 * dyUnconsumed view处于滚动状态,但是并不是由target消耗的滚动时候触发,这个是竖直滚动的实时距离 * type...onStopNestedScroll():看名字就知道了,当停止滑动时调用的方法,主要是执行当滑到一般停止时要怎么恢复还是隐藏商品列表的判断 onNestedFling(): 当手指快速一划时所触发的方法

    89910

    SliverAppBar

    在前面的文章中我们将到了Appbar的用户,它类似于Android中的toolbar,但是熟悉Android开发的童鞋应该知道在Android中还有个Collapsing Toolbar的东西,就是一个可以折叠的标题栏效果...首先我们使用了NestedScrollView中的headerSliverBuilder属性添加了SliverAppBar 然后我们设置展开的高度为200,不让标题栏随着滑动滚动出可视区域 我们使用flexibleSpace...来构建了一个可以滚动的区域 最后我们给NestedScrollView的body加了一个ListView 然后我们来看下效果: ?...当然我们是希望这个TabBar在SliverAppBar下方,并且随着SliverAppBar滚动的,但是我们还是来看下效果吧 ?...其实很简单,因为SliverPersistentHeader跟SliverAppBar一样都有一个 pinned属性,将它设置为true这里面的内容就会在到达顶部后停止跟随ListView移动了。

    1.8K30

    Material Design 实战 之 第六弹 —— 可折叠式标题栏(CollapsingToolbarLayout) & 系统差异型的功能实现(充分利用系统状态栏空间)

    本文来做一个额外的活动作为水果的详情展示界面,当点击水果列表卡片的时候就进入这个界面。...其中, scroll表示CollapsingToolbarLayout会随着水果内容详情的滚动一起滚动, exitUntilCollapsed表示当CollapsingToolbarLayout随着滚动完成折叠之后就保留在界面上...> 我们知道ScrollView允许使用滚动的方式来查看屏幕以外的数据, 而NestedScrollView在此基础之上增加了嵌套响应滚动事件的功能。...由于CoordinatorLayout本身已经可以响应滚动事件了, 因此我们在它的内部就需要使用NestedScrollView或RecyclerView这样可以响应滚动事件的布局。...在 CoordinatorLayout(外层监听框架)、 AppBarLayout(水果详情界面标题栏外层)、 CollapsingToolbarLayout(水果详情界面标题栏)这种嵌套结构的布局中

    2.3K40
    领券