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

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

在ConstraintLayout1.x阶段,它主要提供的能力是对静态布局的支撑,那么到2.x之后,MotionLayout的拓展,让它对动态布局的支持有了进一步的优化,在1.x阶段不能实现的嵌套滚动布局布局方式...在没有ConstraintLayout的时候,要实现嵌套滚动布局,通常都是使用CoordinatorLayout来实现,但是这个东西的使用局限性比较大,能非常简单的实现的嵌套布局,就那么几种,如果要实现一些特别的滚动效果...,就需要自定义behavior来实现,这样一来,嵌套滚动布局就成了一个比较复杂的布局方式了,而MotionLayout的出现,就可以完美的解决这样一个布局难题。...在ConstraintLayout2.x中,有两种方式来实现嵌套滚动布局。...CoordinatorLayout,而仅使用MotionLayout来实现嵌套滚动效果,实现滚动布局的大一统。

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

    【翻译】MotionLayout实现折叠工具栏(Part 1)

    当然了,如果你已经在自己的 App 中使用了,那么你在学会了这里的知识后也没什么必要做更改。...MotionLayout 和安卓上许多其他的动画框架的一个主要不同点在于:视图动画和属性动画运行的时长是给定的,比如指定动画的时长,取消某个动画都是可行的,但是不能做到用户控制一个正在进行中的动画。...> 这基本上是使用标准的 ConstraintLayout 创建出来的一个布局,唯一区别在于父布局实际为一个 MotionLayout 布局( MotionLayout 继承于 ConstraintLayout...元素 OnSwipe 把过渡动画和用户在 RecyclerView 上的拖拽操作绑定到了一起,也就是之前我们查看到的主布局中的列表。...这里卖个关子,在本系列文章的最后,我们将会介绍关于 MotionLayout 布局中更细粒度的一些控制。 三、总结 本篇的源代码请移步这里。 © 2018 , Mark Allison 。

    2K31

    Constraint Layout 2.0 用法详解

    Constraint Layout 2.0 带来了许多关于 Contraint Layout 的新特性,您可以通过在 build.gradle中更改版本来升级使用。...您可以使用 Flow 来实现让布局随着应用屏幕尺寸的变化 (比如设备发生旋转后出现的屏幕宽度变化) 而动态地进行自适应。 ?...而是仅仅引用其它视图来辅助它们在布局系统中完成各自的布局功能。...使用 MotionLayout构建的动画是可追溯且可逆的,这意味着您可以随意切换到动画过程中任意一个点,甚至可以倒着执行动画效果。...尤其是在以下两种情况下,MotionLayout 会比其它动画构建工具更胜一筹: 可追溯的动画 - 由其它输入驱动的动画,例如工具栏在滚动时会出现的折叠效果 状态转换 - 由状态更改驱动的动画,例如用户进入某一界面后

    2.3K30

    Android Studio 4.0重磅发布:全新的 Motion 编辑器及众多更新都在这里!

    在 Motion 编辑器中创建、编辑和预览动画 升级的 Layout Inspector 想要调查特定属性的值的源头?或者想通过嵌套视图的实时 3D 表示,更轻松地检查视图层次?...部署到运行 API 29 或更高版本的设备还能获得其他特性,例如动态布局层次结构(随视图更改而更新)、详细的视图属性(还可以帮助你确定资源值是如何解析的)以及正在运行的应用 UI 的 3D 模型。...使用 Layout Validation 在多个屏幕上对比 UI 当你为多种屏幕规格、屏幕尺寸和分辨率开发应用时,需要验证对 UI 所做的更改在所支持的每个屏幕上都能正常显示。...使用 Layout Validation(布局验证)窗口,你可以同时在多个不同的屏幕和配置上预览布局,轻松确保你的应用兼容各种屏幕尺寸。...Editor:用于创建、编辑和预览 MotionLayout 动画的简单界面 Layout Inspector 升级:实时,更直观的调试体验 Layout Validation:跨多个屏幕尺寸比较你的

    4.7K30

    如何在嵌套列表中更改元素以满足一定条件

    在嵌套列表中更改元素以满足一定条件,可以使用迭代遍历列表,同时检查每个元素是否满足条件,并在满足条件时对其进行修改。下面的问题想必大家都遇到,一起看看我来怎么解决的。...1、问题背景给定一个嵌套列表,其元素为元组,每个元组包含三个整数。目标是根据两个不同的列表中的元素和一个函数,有条件地更改这些元组。...具体来说,需要将嵌套列表 image 中的元素更改为 result 中的元素。...nested 中的元素更改为 message 中的元素。...使用 encode() 函数,将平面列表中的每个元素与 bitlist 中的每个比特进行比较,并根据 set_bit() 函数的结果,更改平面列表中的元素。

    6910

    Android Studio 4.0 重磅发布!Android 11 Bata 版来了!

    在 Android Studio 4.0 中,新的 Motion Editor 让这个 API 用起来更方便。它提供了用于创建、编辑和预览 MotionLayout 动画的强大界面。...或者想通过嵌套视图的实时 3D 表示,更轻松地检查视图层次?借助新的 Layout Inspector,你可以获得正在运行的应用中的最新数据,并获得关于资源解析的深度信息,从而更直观地调试 UI。...部署到运行 API 29 或更高版本的设备还能获得其他特性,例如动态布局层次结构(随视图更改而更新)、详细的视图属性(还可以帮助你确定资源值是如何解析的)以及正在运行的应用 UI 的 3D 模型。...使用 Layout Validation(布局验证)窗口,你可以同时在多个不同的屏幕和配置上预览布局,轻松确保你的应用兼容各种屏幕尺寸。...Editor:用于创建、编辑和预览 MotionLayout 动画的简单界面 Layout Inspector 升级:实时,更直观的调试体验 Layout Validation:跨多个屏幕尺寸比较你的

    2.6K20

    静若处子动若脱兔-Constraintlayout2.0一探究竟

    如果说Constraintlayout1.0是对静态布局的革命,那么这次Constraintlayout2.0的升级,则是对布局中的动画进行了革命,这是对Constraintlayout1.0布局基本形式的强大补充...这是本系列的第一篇文章,简述了Constraintlayout中MotionLayout的基本使用。...那么通过CustomAttributes和Constraint,就可以实现组件的尺寸约束以及组件属性的动画过渡效果。...布局的限制,Android的布局将每个View限制在了它的Measure范围内,导致突破区域的动画很难做 命令式编程,需要制定动画对象的所有行为 参数难调,编译时间太长 借助MotionLayout,Google...UI与动画进行了分离,MotionLayout将所有的动画逻辑放在了Scene中,跟最早Android布局的写法,将UI和代码进行分离的方式类似,但这种方式在现在的开发模式下,并不是很直观,因为MotionLayout

    1.1K10

    探索 MotionLayout 动画世界

    MotionScene常用属性 MotionLayout标签 layoutDescription :设置布局的MotionScene文件。...这里的设置会覆盖之前布局xml文件中的设置,可以将这个节点想象为ConstraintLayout布局,其中的子节点Constraint可以想象为每一个View,其中的android:id=""属性对应着原...nestedScrollFlags :定义嵌套滚动的标志位,可以有以下几种取值: none :不支持嵌套滚动。 disablePostScroll :禁止滚动结束后的滚动。...keyPositionType :坐标系类型,可以取值为: parentRelative 表示以MotionLayout布局为参考系,布局左上角为(0,0),右下角为(1,1)。...顶部大图及背景 效果图如下: 首先在布局文件中添加一个ImageView来显示图片,添加一个等大小的View作为背景。

    17910

    【ERP最新动态】Winshuttle如何通过嵌套循环更改销售订单明细中的Schedule Lines

    如果订单后续有交货,则每个明细下至少有一个计划行,用于指定允许交货的日期和数量及库存管理等信息,这些都是交付的先决条件。...SAP中更改销售订单中明细计划行的操作流程: Winshuttle中更改销售订单中明细计划行的操作流程: 1.登录SAP,输入T-code: VA02开始录制 同上填写销售订单编号之后,与在SAP...中的操作不同的是,需要点击定位按钮定位到明细上,然后点击Schedule lines for item 按钮进入明细计划行。...在创建VA02嵌套循环时,应先创建包含销售订单明细的外循环,再创建明细下计划行的内循环。常用映射方式为拖拽,选中Excel中的表格框,按住并向上方对应行拖拽,即为映射。 3....以上为通过Winshuttle嵌套循环的方式更改明细中Schedule lines的具体操作流程。嵌套循环还可以应用于其他业务场景中,从而提高脚本的灵活性。

    3K20

    设备尺寸杂谈:响应性Web设计中的尺寸问题

    目前在为移动设备设计界面时,最头疼的问题莫过于尺寸的问题。我们无法使用固定的尺寸来进行设计,因为不同设备的大小千变万化。但是如果我们了解了设备的物理特性后,这将有助于我们进行更好的设计。 ?...不同的设备可能具有相同的屏幕分辨率,但是他们的物理特性差别却非常大。一代iPad的屏幕尺寸是9.7寸,分辨率为1024*768、132dpi。...通过 Resolution Media Query 和 Width Query 的配合使用,我们能够将具有同样宽度的不同大小的设备区分开,从而来相应的调整设计中的元素布局。...The Physical Size Inquiry Non-Exhaustive Theorem 理论:在一个组合的查询中,如果 分辨率 Resolution 与 宽度和高度中的较小的一个的比值大于5,...如果得分接近于5,那么是一个中等的设备,物理上的尺寸接近于1张A4纸的大小(21*29.7cm)。

    1.1K20

    ConstraintLayout2.0一篇写不完之约束到底写在哪

    在MotionLayout中,约束可以写在三个地方。 直接写在MotionLayout中:如果布局简单,那么可以直接写在MotionLayout中,这样Scene中的约束会直接继承Layout。...写在单独的CL中:Transition的State不仅仅可以使用ConstraintSet,也可以使用单独的ConstraintLayout布局文件。...❞ 这几种写法各有利弊,首先,写在MotionLayout中,会被State中的布局约束覆盖,但是写在Scene中,每个State都要重复写大量的约束,写在单独的CL布局中,则无法预览,所以,成年人的世界...所以,当你不想重写所有属性的修改时,可以使用Sectioned Constraints,它有五个实现: Layout:这里面你可以修改和布局相关的状态变更,例如布局约束和尺寸 Transform:这里你可以修改...使用这些标签的好处是,如果不存在这些属性,则从基本布局文件中获取。如果只需要一个Motion标签,这就可以省去复制所有的布局标签。如果使用了这些标签,那么基础文件中的所有布局属性都会被覆盖。

    80020

    MotionLayout教你轻松玩转动画

    MotionLayout,它是google推出的一种实现动画的布局view,基于ConstraintLayout为基础,可以让开发者直接通过xml布局的方式来轻松实现动画。...当然它也有一些局限性,例如 MotionLayout只能针对自己的直接子view进行操作,与TransitionManager不同的是,TransitionManager可以作用于其他的嵌套布局,灵活性更高...ConstraintSet 这里有一点需要注意,ConstraintSet中的约束会直接影响到我们外面的layout布局的约束。 的宽高,布局约束,这些都会直接覆盖layout中的宽高与约束。 另一个end,代表的是,动画结束的位置,也就是TextView结束之后的展示方式。...需要注意的是,这里定义的id是需要关联我们layout中的id,这样才能让MotionLayout进行匹配那个View需要进行动画。

    1.1K20

    【翻译】MotionLayout实现折叠工具栏(Part 2)

    -2/ 二、正文 谷歌 IO 2018 发布了 ConstraintLayout 2.0 版本,其中最重要的部分就是 MotionLayout 了,这玩意就是一个全新的、超牛的布局动画工具!...我们已经讨论过 MotionLayout 是如何在 ConstraintSets 中所定义的固定布局之间进行过渡动画了。...结果会给我们实现一个和加速-减速插值器一样的效果。 更牛逼的是,我们可以在动画进行时对动画进行动态更改。...最后值得一提的是:有时候它还能帮我们实现过渡动画的可视化,我们可以通过开启布局中的 showPaths 属性来实现: MotionLayout 不仅灵活、强大,而且还为设计用户交互控制的布局动画开辟了一个非常有趣的可能性哦。 ? 三、总结 本篇的源代码请移步这里。

    1.7K30

    sql中的嵌套查询_sql的多表数据嵌套查询

    今天纠结了好长时间 , 才解决的一个问题 , 问题原因是 求得多条数据中, 时间和日期是最大的一条数据 先前是以为只要msx 函数就可以解决的 , Select * from tableName..., 因为测试的时候是一天中的两条数据, 没有不同的日期,所以当日以为是正确的 ,然而第二天写入数据了,要取出数据,却发现没有数据, 返回空的行, 以为都是代码又有问题 了,找了半天都没有 ,仔细看看了存储过程中的代码...,发现这样返回的数据的确是空的。...这个是嵌套查询的语句。 先执行的是外部查询的语句 。 比如说有三条信息.用上面写的语句在SQL分析器中执行 分析下这样的查询 先查找的是 日期 , 日期最大是下面两条语句 。 在对比时间 。...分析是这样的 查询到的最大天数是2013-03-18这条数据。第三行。 而时间最带的是21:12:21 是第二条数据 这样与的结果就是没有交集,为空了。 后来通过 查找课本和询问他人。

    7.1K40

    【Android 性能优化】布局渲染优化 ( CPU 渲染优化 | 减少布局的嵌套 | 测量布局绘制时间 | OnFrameMetricsAvailableListener | 布局渲染优化总结 )

    Inspector 工具 | View Tree 分析 | 布局组件层级分析 ) 博客中引入了 CPU 渲染优化 , CPU 渲染优化的核心就是减少布局嵌套 , 布局嵌套使用 Android Studio...中的 Layout Inspector 工具进行查看 ; CPU 渲染的优化的核心就是减少布局的嵌套 , 推荐使用约束布局进行开发 , 只有一层嵌套的布局 ; 减少布局的嵌套 , 能极大减少..., 可以在屏幕中绘制这些布局 ; 能够被优化的布局 : 假如父布局中只有一个子布局 , 子布局中有若干组件 , 那么可以直接将子布局的组件放在父布局中 , 将子布局这个层级干掉 , 或者将父布局层级删除...; 一个父布局没有分支的布局 , 只有一个子布局 , 那么大概率可以优化删除父布局或子布局中的一个 , 两者保留一个 ; 强烈推荐使用 ConstraintLayout 约束布局 , 没有以上布局嵌套问题...布局嵌套 : 推荐使用约束布局 ; 如果某个容器布局只有一个子容器 , 那么可以删除一层嵌套 ; 3 . merger 使用 : 如果是 FrameLayout 布局 , 使用 merger 可以减少一层嵌套

    2K10
    领券