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

聊聊Android嵌套滑动

聊聊Android嵌套滑动 最近工作中遇到了需求是使用 Bottom-Sheet 交互的弹窗,使用了 design 包里面的 CoordinatorLayout 和 BottomSheetBehavior...在嵌套滑动控件的场景中,可以在Android的事件分发机制本身做一些处理,外部拦截或者内部消化触摸事件。...如果是其他手势,滑动的时候拦截,不滑动的时候不拦截。如果滑动的时候不拦截的话,手势事件会交给子view去处理,如果子view是可以滚动的,这时候就会有冲突,所有滚动的时候事件要拦截下来交给自己处理。...接着分发嵌套滚动事件,中间还有一些针对 Scroll mode的处理,我们这里不关心: UP 的时候会根据距离判断是否需要消费快速滑动,如果不则会进行分发: 所以我们需要关注的就是: startNestedScroll...嵌套滚动方案的选择 有了这些接口之后,我们可以看到其实内置的Android 控件都支持了滑动嵌套,那么是否我们平时使用的方法都是正确的呢?

1.3K10

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

那么Android5.0也同时给出了相应的解决方案,即推出MaterialDesign库,通过该库中的AppBarLayout控件,对Toolbar加以包装,从而实现顶部工具栏的动态变化效果。..." /> android.support.design.widget.CoordinatorLayout> 嵌套滚动视图NestedScrollView 虽说通过AppBarLayout可实现Toolbar...下面是AppBarLayout结合NestedScrollView的布局文件代码例子: android.support.design.widget.CoordinatorLayout xmlns:android...> android.support.design.widget.CoordinatorLayout> 话说除了RecyclerView和NestedScrollView,还有哪些控件可以触发...这还得从CoordinatorLayout说起,查看CoordinatorLayout的源代码,发现它实现了接口NestedScrollingParent,奥秘就在其中,该接口定义了嵌套滚动的父辈行为,

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

    CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar-Android M新控件

    从官方文档中我们可以看到: CoordinatorLayout是一个增强型的FrameLayout。...滚动事件,那么在CoordinatorLayout布局里其它标记了app:layout_behavior的子View(LinearLayout、RecyclerView、NestedScrollView...滚动事件,那么当LinearLayout滚动时便可触发ToolBar中的layout_scrollFlags效果 即往上滑动隐藏ToolBar,下滑出现ToolBar,而不会隐藏TabLayout,因为...– (Tab的宽度平均分配),也实现了可滚动的选项卡 – (Tab宽度不固定,同时可以横向滚动),还实现了所有Tab居中显示。...并且给这些组件设置如下属性来告诉CoordinatorLayout,该组件是带有滑动行为的组件,然后CoordinatorLayout在接受到滑动时会通知AppBarLayout 中可滑动的Toolbar

    2.2K30

    CoordinatorLayout使用(四):和Toolbar的简单使用

    nR\nS\nT\nU\nV\nW\nX\nY\nZ\nW\nX\nY\nZ" /> android.support.v4.widget.NestedScrollView> android.support.design.widget.CoordinatorLayout...snap: 代码中枚举SCROLL_FLAG_SNAP 在滚动结束后,如果view只是部分可见,它将滑动到最近的边界。...设置exitUntilCollapsed也就是为true的时候,任意向上的滚动都会让view(Toolbar)变为minHeight的高度可见,而不会全部消失 反之,不设置,也就是false,会全部消失...---- 中场小节 CoordinatorLayout中, 如果NestedScrollView要和Toolbar互动的话(CollapsingToolbarLayout等之后在了解,这里不涉及)...a5-2.gif 大体就这样了 代码见后面的地址 ---- 简单小节 CoordinatorLayout中,NestedScrollView和Toolbar联动 注意Toolbar外面要套AppBarLayout

    1.5K30

    ConstraintLayout2.0一篇写不完之嵌套滚动怎么滚

    在没有ConstraintLayout的时候,要实现嵌套滚动布局,通常都是使用CoordinatorLayout来实现,但是这个东西的使用局限性比较大,能非常简单的实现的嵌套布局,就那么几种,如果要实现一些特别的滚动效果...在ConstraintLayout2.x中,有两种方式来实现嵌套滚动布局。...这种方案的布局结构如下: CoordinatorLayout --------AppBarLayout ----------------MotionLayout --------NestedScrollView...CoordinatorLayout,而仅使用MotionLayout来实现嵌套滚动效果,实现滚动布局的大一统。...这样一来,整个嵌套滚动的格局一下子就打开了,再也没了之前使用CoordinatorLayout的高度限制,效果限制,所有的内容,都可以通过约束来进行设置,再通过MotionLayout来进行动态约束,从而实现嵌套滚动布局

    1.2K30

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

    接着在AppBarLayout中再嵌套一个CollapsingToolbarLayout: android.support.design.widget.CoordinatorLayout xmlns..."> android.support.v4.widget.NestedScrollView> android.support.design.widget.CoordinatorLayout...> 我们知道ScrollView允许使用滚动的方式来查看屏幕以外的数据, 而NestedScrollView在此基础之上增加了嵌套响应滚动事件的功能。...由于CoordinatorLayout本身已经可以响应滚动事件了, 因此我们在它的内部就需要使用NestedScrollView或RecyclerView这样可以响应滚动事件的布局。...="wrap_content"> android.support.v4.widget.NestedScrollView> android.support.design.widget.CoordinatorLayout

    2.3K40

    NestedScrolling机制之CoordinatorLayout.Behavior实战

    在上一讲中我们讲了NestedScrolling机制,其实android很多有些常用的控件都是支持NestedScrolling机制的,如RecyclerView,NestedScrollView等,...> coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/...2 横向滚动1 * type 滑动类型touch 0手指按下 1手指松开 */ public boolean onStartNestedScroll(@NonNull CoordinatorLayout...target消耗的滚动时候触发,这个是水平滚动的实时距离 * dyUnconsumed view处于滚动状态,但是并不是由target消耗的滚动时候触发,这个是竖直滚动的实时距离 * type 同上 *...同上 * child 同上 * target 同上 * velocityX 水平加速度 * velocityY 竖直加速度 * consumed 同上 false不拦截 true则不会有惯性滑动,需要自己处理

    89810

    CoordinatorLayout使用(三):NestedScrollView & 嵌套滑动事件

    直接的关系和使用 自定义Behavior的通用流程 了解 绑定的方式, 事件流 上一篇唯一的例子,是事件流中 CoordinatorLayout关联事件 而其中, 事件流中,嵌套滑动事件 中...---- 嵌套滑动事件 简单实例 注意: 这里是用 事件流中 嵌套滑动事件 去处理的 我们可以用NestedScrollView做事件发送,给外面的Parent发事件, 再传递给Behavior...具体只是2个方法有先后顺序而已 boolean onNestedFling 对应的滑动较快,也就是fling事件触发的时候调用 这里不能换成 onNestedPreFling,替换后,会有卡顿,暂时不纠结为什么...这里layout,也很简单 就CoordinatorLayout中,包含 2个 NestedScrollView , 一个Behavior activity_main4.xml android.support.v4.widget.NestedScrollView> android.support.design.widget.CoordinatorLayout

    10.7K40

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

    一个问题NestedScrollView高度加上顶部AppBarLayout高度没超过屏幕高低滑动有问题(只能在AppBarLayout范围内才能滑动); android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/...parallax - 设置为这个模式时,在内容滚动时,CollapsingToolbarLayout中的View(比如ImageView)也可以同时滚动,实现视差滚动效果,通常和layout_collapseParallaxMultiplier....widget.NestedScrollView> android.support.design.widget.CoordinatorLayout> 里面的有个imageview,注释已经写的很清楚了...然后里面的NestedScrollView这货。 它和scrollview 基本上一样  但是它支持嵌套滚动  嵌套滚动默认是启用的。

    96730
    领券