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

在自定义视图的构造函数中获取CoordinatorLayout行为

,可以通过以下步骤实现:

  1. 首先,了解CoordinatorLayout的概念。CoordinatorLayout是Android Support库中的一个布局容器,用于实现复杂的交互效果和协调子视图之间的行为。它可以通过添加Behavior来控制子视图的行为。
  2. 在自定义视图的构造函数中,可以通过调用getLayoutParams()方法获取视图的布局参数。这将返回一个CoordinatorLayout.LayoutParams对象。
  3. 接下来,可以通过调用getBehavior()方法来获取CoordinatorLayout.LayoutParams对象中的Behavior。这将返回一个实现了CoordinatorLayout.Behavior接口的对象。
  4. 通过获取到的Behavior对象,可以使用其提供的方法来获取和设置子视图的行为。例如,可以使用setAnchorId()方法设置视图的锚点,使用setAnchorGravity()方法设置视图的锚点重力等。

以下是一个示例代码:

代码语言:java
复制
public class CustomView extends View {
    public CustomView(Context context) {
        super(context);

        // 获取布局参数
        CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) getLayoutParams();

        // 获取Behavior
        CoordinatorLayout.Behavior behavior = layoutParams.getBehavior();

        // 使用Behavior设置子视图的行为
        if (behavior instanceof AppBarLayout.ScrollingViewBehavior) {
            // 如果是AppBarLayout.ScrollingViewBehavior,可以进行相应的操作
            // ...
        }
    }
}

在上述示例中,我们通过获取布局参数和Behavior,可以根据具体的需求对子视图的行为进行操作。请注意,具体的操作和使用方法可能因实际需求而有所不同。

推荐的腾讯云相关产品和产品介绍链接地址:

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求和项目要求进行评估。

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

相关·内容

构造函数以及析构函数PHP需要注意地方

构造函数以及析构函数PHP需要注意地方 基本上所有的编程语言类中都会有构造函数和析构函数概念。...构造函数函数实例创建时可以用来做一些初始化工作,而析构函数则可以实例销毁前做一些清理工作。...,则默认调用父类 析构函数如果没显式地将变量置为NULL或者使用unset()的话,会在脚本执行完成后进行调用,调用顺序测试代码是类似于栈形式先进后出(C->B->A,C先被析构),但在服务器环境则不一定...引用如果没有释放,析构函数是不会执行构造函数低版本兼容问题 PHP5以前,PHP构造函数是与类名同名一个方法。...构造函数和析构函数访问限制 构造函数和析构函数默认都是public,和类其他方法默认值一样。当然它们也可以设置成private和protected。

1.6K20

Android开发笔记(一百三十七)自定义行为Behavior

先上个图,说明一下自定义行为所支持画面: ? 从这张女孩照镜子动画可以看到,当拖动左边女孩头像时,右边镜子里头像也随之靠近或者远离,颇似现实生活镜像运动。...如果按照普通实现方式,此种照镜子动画效果,得给两个视图分别注册监听器,然后A视图移动之际,同时触发B视图移动行为。...2、两个函数,layoutDependsOn用来判断当前几个视图是否存在依赖关系,返回true表示存在依赖,反之则不存在依赖;也就是说,只有存在依赖关系两个视图才会夫唱妇随,缺一不可。...具体实现之时,则需做三处修改: 1、首先自定义一个图像控件,通过手势可以拖动该控件; 2、其次自定义一个Behavior,指定存在依赖关系两种视图layoutDependsOn方法规定两种视图类型...,onDependentViewChanged方法定义重物视图配合人力拉曳时运动行为; 3、布局文件中放置定滑轮、人力视图、重物视图,并给重物视图指定layout_behavior属性,说明重物视图协调动作

1.2K20

Android开发笔记(一百三十四)协调布局CoordinatorLayout

ViewGroup,实现效果类似于RelativeLayout,若要指定子视图整个页面位置,有以下几个办法: 1、使用layout_gravity属性,指定子视图CoordinatorLayout...3、使用app:layout_behavior属性,指定子视图相对于其它视图行为,当对方位置发生变化时,本视图位置也要随之相应变化。...: 1、FloatingActionButton会悬浮在其他视图之上,即使别的视图布局文件位于FloatingActionButton后面; 2、隐藏、显示按钮上时会播放动画;其中隐藏操作是调用hide...因此,Android又提供了BottomSheetBehavior用来自定义底部弹窗,不过它并非一种新控件,而是给现有视图加上几个新属性,即可实现弹窗与关闭效果。...BottomSheetBehavior代码中使用方法如下所示: from : 从指定视图获取底部弹窗行为。 getState : 获取行为状态。 setState : 设置该行为状态。

1.9K20

Android CoordinatorLayout高级用法之自定义Behavior

1.某个view需要根据监听另一个行为来控制自己行为,这个时候我们需要重写2个方法: public boolean layoutDependsOn(CoordinatorLayout parent,...Behavior,带有参数这个构造必须要重载,因为CoordinatorLayout里利用反射去获取这个Behavior时候就是拿这个构造。...接下来就是onDependentViewChanged对View做出相应状态改变。代码,我们做改变是,跟随dependedcy一起Y轴方向移动,来达到显示和隐藏目的。...因为这个是根据CoordinatorLayout里子view滚动行为来改变我们状态,所以情况12个方法我们就不需要重写了。下面,我们用情况2来实现上面的效果。...onStartNestedScroll,首先获取targetY轴上距离屏幕顶端距离,然后判断是否是Y轴上滚动。

1.6K21

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

也就是说, CoordinatorLayout 这个布局已经提供了一些非常有用行为动画,如果你尝试去修改它,或者创建一些基于它自定义动画,那都是相当困难。...在这里我特意使用了最基本 View 控件类型,用来说明视图本身并没有产生任何其他行为动作。当然实际 App 开发过程我应该会使用 AppBarLayout 布局配合 Toolbar 控件吧。...以 CustomAttribute 为名暗示着我们正在使用一个自定义视图 View ,但实际上并不是这样。...在这里,我们需要调整 ImageView imageAlpha 值。当然,你也可以使用自定义视图自定义属性来实现,就如同 ObjectAnimator 一样。...版本行为有点不一致。

1.9K31

CoordinatorLayout使用(二):Behavior流程 和 事件流

二级和代码解析,有一些冲突, 和之前wiki排版差不多,由于不重要,所以自己不花时间去整理了, 有时间找到解决方法后,再做修改 ---- 自定义Behavior通用流程 通常分为: 重写构造方法...绑定到View** - 一定要重写这个构造方法,因为当你XML设置该Behavior时, - CoordinatorLayout中会反射调用该方法,并生成该 Behavior 实例。...- **绑定方法有三种:** - XML 文件,设置任意 View 属性 - ``` app:layout_behavior="你Behavior包路径和类名" - 或者代码...> - Behavior获取对象 - public class FollowBehavior extends CoordinatorLayout.Behavior { private...接口,获取传递事件,传递给Behavior子类消费 自定义Behavior继承抽象类Behavior,获得事件,进行消费。

1K60

VBA自定义函数:一次查找并获取指定表格多个值

标签:VBA,自定义函数 这个自定义函数来自于forum.ozgrid.com,可以指定表查找多个值,并返回一组结果,而这些结果可以传递给另一个函数。...该函数代码如下: Public Function MultiVLookup(ReferenceIDs As String, Table As Range, TargetColumn As Integer...;参数Table是包含查找内容表;参数TargetColumn代表表返回结果列;参数Delimeter代表分隔符,可选,取决于第一个参数。...例如,下图1所示数据,表名为MyTable。...图1 要查找MyTable表A、B、D对应第2列值并求和,可使用公式: =SUM(MultiVLookup("A,B,D",MyTable,2)) 或者,将要查找值放在一个单元格,然后使用公式来查找相应

14610

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

原本想用原生 CalendarView,但是 CalendarView 不支持周视图,可自定义程度也不高。 GitHub 搜了一下,决定使用 MaterialCalendarView。...这个库比较流行,它支持周月视图切换,符合 Material Design,也可以自定义显示效果。...布局,对子控件配置 app:layout_behavior 属性,实现对应联动效果。所以这里我们需要自定义日历和列表两个 Behavior。 Behavior 有两种实现联动方式。...ViewOffsetBehavior 作用是方便改变控件位置和获取偏移量。所以这里我再偷个懒,把源码里 ViewOffsetBehavior 直接拷出来用了。...当滑动到最上面的时候切换为周视图,其余情况都是月视图: @Override public void onStopNestedScroll(final CoordinatorLayout coordinatorLayout

3.2K10

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

那么Android5.0也同时给出了相应解决方案,即推出MaterialDesign库,通过该库AppBarLayout控件,对Toolbar加以包装,从而实现顶部工具栏动态变化效果。...RecyclerView是其中一个特工,它可用来替代ListView和GridView;替代ScrollView则另有其人,它便是嵌套滚动视图NestedScrollView,Android5.0之后...这还得从CoordinatorLayout说起,查看CoordinatorLayout源代码,发现它实现了接口NestedScrollingParent,奥秘就在其中,该接口定义了嵌套滚动父辈行为,...所以,搜遍AndroidSDK源码,总共也只有三个控件符合这个条件,它们是RecyclerView、NestedScrollView,以及SwipeRefreshLayout,布局文件中使用名称如下所示...1、AppBarLayout滚动依赖于主体视图滚动,与主体视图相对应,可将AppBarLayout称作头部视图。既然一个页面分为头部和主体两部分,那么就存在谁先滚谁后滚问题了。

1.9K40

【Android Gradle 插件】Gradle 自定义 Plugin 插件 ④ ( 为自定义 Gradle 插件扩展配置扩展 | 自定义插件获取扩展属性 )

文章目录 一、Android Gradle 插件扩展扩展 二、为自定义 Gradle 插件扩展配置扩展 并 获取扩展属性 Android Plugin DSL Reference 参考文档 : Android...扩展 ) , 实现了 自定义插件 扩展 Extension , Module 模块下 build.gradle 构建脚本 , android 配置块 就是一个 AppExtension...自定义 Plugin 插件 Extension 扩展 , 再 定义一层 Extension 扩展 ; 二、为自定义 Gradle 插件扩展配置扩展 并 获取扩展属性 ---- 定义扩展类 :...def name def age } 声明扩展 和 扩展扩展 : 通过调用 project.扩展名.扩展属性 可获取构建脚本配置 扩展属性 , 通过调用 project.扩展名....扩展扩展名.扩展属性 可获取构建脚本配置 扩展属性 扩展属性 ; import org.gradle.api.Plugin import org.gradle.api.Project class

2K10

建站四部曲之移动端篇(Android+上线)

零、前言 本系列为了总结一下手上知识,致敬我2018 本篇重点在于:后端数据移动端展现 本篇总结技术点: 材料设计串烧、Retrofit+RxJava访问请求、Retrofit提交表单...coordinatorLayout, final View fab, boolean show) { //获取fab头顶高度 int hatHeight = coordinatorLayout.getBottom...攻坚战 ---- 二、MVP思路 1.概述: 蓝色白斜字是接口 橙色虚线是类方法引线 蓝色虚线是流程线 天蓝色是普通类 左右分别是MPV,模型层(M)负责数据获取,通过Callback回调在控制层...(P)使用 控制层(P)注意进行模型层(M)和视图层(V)粘合,通过逻辑进行不同视图展现 也就是说我写P实现类,管你MV怎么实现么,你家老子(M,V接口)我手上,我还怕什么 视图层(...V)时,V手里也有控制层老子(P接口),所以V也是怎么想 所以无论写视图层,数据层,控制层,只要把接口定义好,便可以分工去写,互不影响 这也就是面相接口编程有点,有些人视图非常棒,可以专门做视图

76630

听说谷歌Baba更新了 Material UI ...

来瓶哇哈哈,精神抖擞来一波~ 简单回顾 Material Design,是谷歌14年IO大会上提出一种新理念,也被称为新设计语言(也被称为“原材料设计”),称它为设计语言不为过,但是实际上,这仅仅是谷歌提倡一种新设计风格...那下面按照步骤操作一次: Step 1:布局添加BottomNavigationView: <com.google.android.material.bottomnavigation.BottomNavigationView...持久性底部页面是从屏幕底部出现视图主要内容上升高。他们可以垂直拖动以暴露他们内容列表。 注意:如果要使用模态(对话框)底页,请使用 BottomSheetDialogFragment。...如果已经Activity使用CoordinatorLayout,添加底部表单很简单: 将任何视图添加为CoordinatorLayout直接子视图。...设置所需行为标志  app:behavior_hideable:是否可以通过拖拽隐藏底部表单。

3K20

一步一步深入理解CoordinateLayout

,但是都是教你怎么使用,或者简单自定义一些Behavior,并没有一篇文章深入去了解它原理。...context, AttributeSet attrs) {} 当我们Xml里指定时候,LayoutParams构造方法里会去调用parseBehavior这个方法,parseBehavior...这里我们需要注意是: 如果要在xml里使用Behavior 那么第二个构造方法必不可少,所以我们自定义Behavior时候需要注意;另外你xml定义属性会传递到第二个构造方法里去,可以获取xml...ColonMeasure中会去调用prepareChildren方法,而prepareChildren方法又调用了一个叫getResolvedLayoutParams方法如下: ?...所以注解方式是onMeasure通过getResolvedLayoutParams去实例化

84310

自定义Behavior —— 仿知乎,FloatActionButton隐藏与展示

写作思路 CoordinatorLayout Behavior 简介 怎样自定义 Behavior 仿知乎效果 自定义 Behavior 实现 自定义 Behavior 两种方法 对比 FloatActionButton...自定义 Behavior 效果实现 题外话 今天就来讲解怎样通过自定义behavior来实现各种炫酷效果 ,效果图如下 ?...这两个方法,判断是否是垂直滑动,是的话就进行处理,灵活性大大增强,推荐使用这一种方法 需要注意是不管是第一种方法,还是第二种方法,我们都需要重写带两个构造方法函数,因为底层机制会采用反射形式获得该对象...) { if(child.getVisibility() == View.VISIBLE&&viewY==0){ //获取控件距离父布局(coordinatorLayout...仿知乎效果时候已经讲过了,大概就是根据不同滑动行为执行不同动画 而已 ---- 题外话 通过这篇博客,熟悉 CoordinatorLayout 各种用法,同时也初步理解了自定义Behavior

1K11

CoordiantorLayout与Behavior

CoordinatorLayout CoordinatorLayout继承自FrameLayout,并且实现了NestedScrollingParent2接口用于接收嵌套滑动事件。...CoordinatorLayout使用 通过使用layout_anchor以及layout_anchorGravity来定义子View之间位置关系,并且通过Behavior自定义子View之间React... PS:自定义Behavior类需要定义一个接收Context以及AttributeSet构造函数,否则无法对象 static Behavior parseBehavior(Context context...,会遍历所有存在依赖关系子View,即mDependencySortedChildren: 从mDependencySortedChildren获取有依赖子View,而mDependencySortedChildren...是prepareChildren初始化完毕 最后会遍历参与DependencyView,通过layoutDependsOn判断是否两者有依赖关系,如果有的话,则通过onDependentViewChanged

46220

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

从官方文档我们可以看到: CoordinatorLayout是一个增强型FrameLayout。...- 作为一个为子视图之间相互协调手势效果一个协调布局 - ) 该控件也是Design包下一个控件,然而这个控件可以被称为Design包中最复杂、功能最强大控件:CoordinatorLayout...enterAlwaysCollapsed 当你视图已经设置minHeight属性又使用此标志时,你视图只能已最小高度进入,只有当滚动视图到达顶部时才扩大到完整高度 exitUntilCollapsed...固定Tab,TabLayout居中显示 ? 可滑动Tab ?...并且给这些组件设置如下属性来告诉CoordinatorLayout,该组件是带有滑动行为组件,然后CoordinatorLayout接受到滑动时会通知AppBarLayout 可滑动Toolbar

2K30
领券