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

在布局完成之前,CoordinatorLayout测量开始后,锚点是否不能更改?

在布局完成之前,CoordinatorLayout测量开始后,锚点是不能更改的。CoordinatorLayout是Android Support库中的一个布局容器,用于实现复杂的交互效果和协调子视图之间的行为。它通过使用锚点(Anchors)来定义子视图之间的依赖关系和交互行为。

锚点是通过在子视图的布局参数中设置app:layout_anchor属性来定义的。一旦CoordinatorLayout开始测量子视图,锚点就会被确定下来,并且不能再更改。这是因为在测量过程中,CoordinatorLayout需要根据锚点的位置和属性来计算子视图的布局位置和大小。

如果在测量开始后尝试更改锚点,将会导致布局计算错误,可能会出现视图重叠、错位等问题。因此,在使用CoordinatorLayout时,需要在布局文件中正确设置锚点,并确保在测量开始之前不再更改锚点。

推荐的腾讯云相关产品:无

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

针对 CoordinatorLayout 及 Behavior 的一次细节较真

注意的是更改 child 的位置,要 return true。 下面来验证。我们布局文件中对一个 ImageView 设置 MyBehavior,然后观察它的现象。...弄清楚上面的规则,恭喜你,你已经掌握了自定义 Behavior 的基础技能。 再多一细节?...CoordinatorLayout 布局 FrameLayout 中布局默认从左上角开始,但是可以通过 layoutparam 中的 Gravity 进行布局对齐。...CoordinatorLayout 的锚定 LayoutParam 中有个 mAnchorView,Anchor 是的意思,比如 View A 锚定了 View B,那么 View A 的 mAnchorView...Behavior 的存在,可以决定 CoordinatorLayout 中对应的 childview 的测量尺寸、布局位置、触摸响应。 最后,回到文章最开始的地方。

1.2K20

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

首先实现标题栏部分,这里使用CoordinatorLayout来作为最外层布局(我们讲监测snackbar弹出,解决其遮挡悬浮按钮问题的时候用到过这个布局),如下: <android.support.design.widget.CoordinatorLayout...另外,通过 app:layout_behavior属性指定一个布局行为,这和之前 第四弹 RecyclerView中的用法是一模一样的。...FloatingActionButton中, app:layou_anchor属性(anchor n.状物)指定了一个,这里将设置为AppBarLayout,这样悬浮按钮就会出现在水果标题栏的区域内...至此activity_fruit.xml布局(水果详情界面)便写完了。 界面完成了之后,接着开始编写功能逻辑,修改FruitActivity(水果详情界面的逻辑): ? ?...但android:statusBarCoIor这个属性是从API 21,即Android5.0系统开始才有的,之前的系统无法指定这个属性。

2.3K40
  • ByRecyclerView:只为改变BRVAH加载更多机制addHeaderView的问题

    3.不能CoordinatorLayout + AppBarLayout中使用(作者后期已经修复,但是由于项目是拷贝的所以不便更新维护)。...4.不能设置EmptyView,或者不是以一个item形式添加,导致不能同时出现头布局和空布局 5.不能添加FooterView 6.不能设置item点击事件 7.需要自己实现BaseRecyclerViewAdapter...()是一个item中操作的,导致我不能顺利使用(滑动时,通过定位第一个item的位置来更改指示器)。...效果 ? 效果 2.不满一屏自动加载。这个功能导致有很多不必要的接口请求,每次进入不满一屏的页面都会请求两次,实在看不过去。设计讲究所见即所得,不要乱替我执行动作行为。...最终 ByRecyclerView 于是就有了ByRecyclerView,它基本解决了上面的所有问题: 不满一屏,上拉才执行加载更多;满一屏触底加载更多 可设置自己的下拉刷新头,并可自定义下拉刷新布局和加载更多布局

    1.2K20

    ByRecyclerView:只为改变BRVAH加载更多机制addHeaderView的问题

    3.不能CoordinatorLayout + AppBarLayout中使用(作者后期已经修复,但是由于项目是拷贝的所以不便更新维护)。...4.不能设置EmptyView,或者不是以一个item形式添加,导致不能同时出现头布局和空布局 5.不能添加FooterView 6.不能设置item点击事件 7.需要自己实现BaseRecyclerViewAdapter...()是一个item中操作的,导致我不能顺利使用(滑动时,通过定位第一个item的位置来更改指示器)。...效果[效果] 2.不满一屏自动加载。这个功能导致有很多不必要的接口请求,每次进入不满一屏的页面都会请求两次,实在看不过去。设计讲究所见即所得,不要乱替我执行动作行为。...最终 ByRecyclerView 于是就有了ByRecyclerView,它基本解决了上面的所有问题: 不满一屏,上拉才执行加载更多;满一屏触底加载更多 可设置自己的下拉刷新头,并可自定义下拉刷新布局和加载更多布局

    1.2K20

    一步一步深入理解CoordinateLayout

    简单说,Behavior可以负责所有的交互甚至测量以及布局。...那些不能不懂的方法 layoutDependsOn 之前提到了child与dependency有着依赖关系,那么问题来了: 这个依赖关系是如何建立的?...当dependency被布局(或测量child会紧接着被布局(或测量),Col会无视子view的顺序(原因是Col内有个ComparatormLayoutDependencyComparator会按照依赖关系对所有的子...我们知道,ViewGroup的测量布局,事件分发都是需要自己处理的,那么Col究竟给了Behavior什么特权,让它能够让它拦截一切?...让我们挨个一看下去 onMeasure 直接备注源码里了,不多说啦!~ ? onLayout ? 原理其实跟onMeasure方法一样的。

    87610

    MaterialDesign之FloatingActionButton

    但是5.0的时候google推出了FloatingActionButton,并做了相应的兼容,能很好的解决以上问题,并且通过CoordinatorLayout可以很好的联动!...请原谅我的配色 其实FloatingActionButton的用法很简单,主要是布局文件中定义就可以了,这里先将一下各个属性的含义: 大家可以试一下,能更好的理解相应的内容的!...设置阴影效果 app:pressedTranslationZ 按下时的阴影效果 app:fabSize 设置尺寸normal对应56dp,mini对应40dp app:layout_anchor 设置...,相对于那个控件作为参考 app:layout_anchorGravity 设置相对的位置 top/bottom之类的参数 app:rippleColor 设置点击之后的涟漪颜色 整理的布局是这样的...child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed); } } 之后布局中设置一些behavior就可以了 <

    68830

    为任意屏幕尺寸构建 Android 界面

    更改之前的 Trackr 样式 上图是我们进行更改之前的 Trackr 样式,您会发现不管什么设备或屏幕下,都会有一个单窗口任务列表以及用于导航到归档或设置页面的底部应用栏。...,可以 Android Studio 查看显示是否一切正常,通过各种 Reference Devices 中来回切换查看布局是否按照我们的预期进行。...完成这些,我们再次通过 Android Studio 中的 Reference Devices 工具,就能看到新的布局在所有的设备屏幕中都能够完美布局了。...△ 图左: 主界面入口 HomeFeedScreen 图右: 主界面入口 ArticleScreen △ 主界面入口 HomeFeedWithArticleDetailsScreen 上图是我们适配之前和适配之后的页面样式...对于此类情况我们可以使用 Box With Constraints,它类似于框布局,能够根据范围内的测量信息来用于决策。

    4.2K20

    自定义 Behavior - 仿新浪微博发现页的实现

    第一个关键的实现 这里区分页面状态是 open 还是 close 状态是通过 Header 是否移除屏幕来区分的,即 child.getTranslationY() == getHeaderOffsetRange... Action_move 的时候,Scrolling Child 要开始滑动的时候,会调用dispatchNestedPreScroll 方法,通过 ChildHelper 询问 Scrolling...Parent 是否要先于 Child 进行 滑动,若需要的话,会调用 Parent 的 onNestedPreScroll 方法,协同 Child 一起进行滑动 当 ScrollingChild 滑动完成的时候...Parent 的 onNestedFling 方法 而 RecyclerView 也是 Scrolling Child (实现了 NestedScrollingChild 接口),RecyclerView 开始滑动的...,正常来说被依赖的 View 会优先于依赖它的 View 处理,所以需要依赖的 View 可以 measure/layout 的时候,找到依赖的 View 并获取到它的测量/布局的信息,这里的处理就是依靠着这种关系来实现的

    87620

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

    让我们先看下 CoordinatorLayout 版本的实现效果,注意图片在工具栏几乎快要完全折叠之前是不会开始渐变到主色彩动画的: ?...而关键帧允许我们两个固定布局之间定义一个中间,并对此的属性值进行操作控制。...更牛逼的是,我们可以动画进行时对动画进行动态更改。...标题文字的移动和缩放在整个过渡动画中是同时进行的,但是通过添加一个单独关键帧我们可以做到更改 ConstraintSets 代码的前提下,也不用改变缩放速度就能让标题文本更快地到达动画最终位置:...最终标题文本会走在工具栏折叠动画之前,接着折叠完全结束的时候直接回落到正确的位置上: ?

    1.7K30

    聊聊Android嵌套滑动

    我们仍然从它的touch事件处理流程开始看: 它的 onInterceptTouchEvent 中,当手势是 MOVE 的时候, 如果是垂直方向滑动并且达到滑动定义的距离,就开始执行滑动: 当手势是...DOWN 的时候,开始嵌套滑动: 当手势是 MOVE 的时候,结束嵌套滑动: 最终,是否拦截触摸事件,都交由自己是否正在拖拽状态来觉得,如果是,就拦截。...这些都是 NestedScrollView里面的 NestedScrollingChildHelper 对象完成的。...view嵌套滑动,则返回true,如果不同意就继续询问父布局的父布局是否同意,如果到view树的最顶端还不支持,那么就返回false,无法进行嵌套滚动了。...CoordinatorLayout 布局上其实和我们常见的 FrameLayout 没有差别,但是它内部实现了嵌套滑动的接口来支持包裹一个可以支持嵌套滑动的Scroll 组件,并且把交互抽象到 Behavior

    1.3K10

    Material Design技术分享

    因项目需要接触了近一个月的Material Design,之前只觉得它美丽而神秘,真正接触起来发现确实不错。针对这段时间做个小总结,也给广大战友们分享踩坑的经验。...Material Design强调的有三: 实体隐喻,其实就是立体感。 鲜明,形象,合理的视觉,简单点说就是时刻琢磨用户的想法,并且体现在页面布局中。 有意义的动画效果。   ...Behavior中有两个方法layoutDependsOn和onDependentViewChanged,前者是确定所提供的子视图是否有另一个特定的兄弟视图作为一个布局依赖。...,那么CoordinatorLayout布局里其它标记了app:layout_behavior的子View(LinearLayout、RecyclerView、NestedScrollView等)就能够响应...Startx和startY是拉伸开始的坐标,而startwidth和startheight是拉伸的尺寸,默认(0,0)表示全屏。

    2.2K60

    RecyclerView源码解析(二)LinearLayoutManager绘制篇

    ,onLayoutChildren开始注释中就给出了实现算法: 1根据子控件和一些变量,找到位置和坐标 2从位置开始填充子控件 3滑动到满足要求的位置(本文重点关注前两步,第三步将在交互部分梳理...确定 所谓,在这里就是指最先定位的那一个item,相关信息LinearLayoutManager中用AnchorInfo类表示 static class AnchorInfo {     ...    int mCoordinate; //anchor对应的item位置距顶部的距离     boolean mLayoutFromEnd; //是否从底部往上布局本文讨论的场景中,值都为false...首先依据信息中的mLayoutFromEnd,通常我们遇到的情况值都为false,代表从头开始布局。...在这种情况下,会以开始,先填充对应item后面的子控件,调用updateLayoutStateToFillEnd()设置mLayoutState的各种属性,其中就包含mAvailable;而后填充前面的子控件

    1.2K20

    淘宝首页Bug!嵌套滑动及NestedScroll

    Android NestedScrolling机制完全解析 带你玩转嵌套滑动 一、项目实例--电商首页 1、嵌套滑动的问题 看懂了以上文章,现在来分享一下项目中的问题。...可以清楚看到: 京东:滑动很顺畅,没有停滞的情况,tab到顶部就 紧接着 滑动内部商品列表了。整个过程手指是连续拖动的,没有抬起。 淘宝:tab滑到顶部,手指继续拖动,但商品流是不能滑动的。...==接口很重要,目的就是 开始滑动 外部RecyclerView 时、开始滑动内部RecyclerView时,都询问NestedScrollLayout2是否处理且如何处理。...,向下滑动,如果子列表不能滑了,parent把dy都消耗掉,然后滑外部列表。...CoordinatorLayout处理,CoordinatorLayout的OnTouchEvent中,处理方式就是总结一了,即交给AppBarLayout滑动了。

    1.5K20

    再学一遍android:fitsSystemWindows属性

    话说为什么android:fitsSystemWindows属性,设置CoordinatorLayout布局上就能生效,设置FrameLayout布局上就没有效果呢?...比如我CoordinatorLayout内放了一张图片,按照这个规则,图片也是不会显示状态栏背后的,这样就达不到想要的效果了。 我们可以来试一下这种场景。...Google提供的诸多布局当中,并不是只有CoordinatorLayout会处理android:fitsSystemWindows属性,像CollapsingToolbarLayout、DrawerLayout...重新运行一下程序,效果如下图所示: 需要注意的是,CollapsingToolbarLayout一定要结合着CoordinatorLayout一起使用,而不能单独使用。...出现这个问题的原因也很好理解,因为之前我们是使用的CoordinatorLayout嘛,它已经帮我们考虑好到这些事情,自动会将内部的控件进行偏移。

    1.2K50

    自定义 Behavior,实现嵌套滑动、平滑切换周月视图的日历

    引入该库,布局文件中使用: <com.prolificinteractive.materialcalendarview.MaterialCalendarView android:id="@+id...<em>在</em><em>布局</em>中,对子控件配置 app:layout_behavior 属性,实现对应的联动效果。所以这里我们需要自定义日历和列表的两个 Behavior。 Behavior 有两种实现联动的方式。...另外,由于 <em>CoordinatorLayout</em> 的<em>布局</em>类似于 FrameLayout,所以还需要考虑摆放控件位置的问题。...= 0; } onNestedPreScroll 这个方法是<em>在</em>准备滚动<em>之前</em>调用的,它带有滚动偏移量 dy。...这里包含了,快速滑动<em>后</em>惯性滑动到指定位置的效果,和没有快速滑动时,往就近的指定位置滑动这两种效果。

    3.3K10

    Android之MaterialDesign应用技术

    无论大、中、小型企业,都决不能被时代所淘汰,所以,建设网站是企业把握时代脉搏,衡量企业是否跟上时代的标准。精明的经营者懂得并擅于用最先进的媒体--互联网,树立企业形象,宣传企业产品。...1.1:创建布局文件design_main_layout.xml 这个布局文件非常简单,只有一个CoordinatorLayout和TextView,但是CoordinatorLayout是重点,滑动控件什么的都和他有关...>  1.2:Activity具体代码 SwipeDismissBehavior主要是控制控件的行为,LayoutParams是布局参数,textview这个控件是协调者布局中滑动的,所以,要获取该布局的参数...和帧布局相似,会覆盖,布局中写上id然后说某个控件下面或者上面就可以,这个布局就要写app:layout_behavior即可。...这样就Ok了;   总结:这里的代码虽然看着少,那是因为大部分代码都被封装好了,我们一开始添加的依赖就是封装好的包,悬停效果能够给人一个很好的体验,当你翻一个软件简介的时候,无论翻多少行,标题始终都会在上头悬浮

    1.3K90

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

    我们开始之前,有必要在这里澄清一下: CoordinatorLayout 中使用 CollapsingToolbarLayout 来实现折叠工具栏是没任何问题的。...当然了,如果你已经自己的 App 中使用了,那么你在学会了这里的知识也没什么必要做更改。...元素 OnSwipe 把过渡动画和用户 RecyclerView 上的拖拽操作绑定到了一起,也就是之前我们查看到的主布局中的列表。...如果我们使用该布局来代替一开始我们就使用的 CoordinatorLayout 布局来实现,那么我们将会得到这样的行为: ?...这事实上效果已经非常接近,但是仔细看你会发现这里与刚开始我们使用的 CoordinatorLayout 方式有一个细微的区别: CoordinatorLayout 布局下图片的褪色渐变动画和 MotionLayout

    1.9K31

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

    ConstraintLayout1.x阶段,它主要提供的能力是对静态布局的支撑,那么到2.x之后,MotionLayout的拓展,让它对动态布局的支持有了进一步的优化,1.x阶段不能实现的嵌套滚动布局布局方式...没有ConstraintLayout的时候,要实现嵌套滚动布局,通常都是使用CoordinatorLayout来实现,但是这个东西的使用局限性比较大,能非常简单的实现的嵌套布局,就那么几种,如果要实现一些特别的滚动效果...ConstraintLayout2.x中,有两种方式来实现嵌套滚动布局。...可以发现,这种方式,实际上就是利用MotionLayout来替代之前AppBarLayout里面的CollapsingToolbarLayout,借助MotionLayout来实现之前CollapsingToolbarLayout...这样一来,整个嵌套滚动的格局一下子就打开了,再也没了之前使用CoordinatorLayout的高度限制,效果限制,所有的内容,都可以通过约束来进行设置,再通过MotionLayout来进行动态约束,从而实现嵌套滚动布局

    1.1K30
    领券