博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CoordinatorLayout和Behavior(一)
阅读量:7042 次
发布时间:2019-06-28

本文共 1180 字,大约阅读时间需要 3 分钟。

Android Design Support Library中的很多View都要求CoordinatorLayout作为父View。CoordinatorLayout本身并没有什么神奇之处,当CoordinatorLayout的子View是普通的View时,CoordinatorLayout就相当于一个普通的FrameLayout。Android Design Support Library的交互效果是通过Behavior来实现的。

创建Behavior

Behavior是一个抽象类,创建一个Behavior就是继承Behavior。Behavior有一个泛型参数,该参数就是指定了该Behavior的View。

Behavior有两个构造方法,如下: 1.public Behavior() 该构造方法是在代码中创建Behavior时调用。 2.public Behavior(Context context, AttributeSet attrs) 该构造方法是在XML布局文件中指定Behavior时调用。

Behavior的部分方法: setTag/getTag:静态方法,用来保存临时数据,保存在指定该Behavior的View的布局参数CoordinatorLayout.LayoutParams的mBehaviorTag。 onSaveInstanceState/onRestoreInstanceState: 用来保存和恢复指定该Behavior的View的状态。

指定Behavior

  • 注意:只能给CoordinatorLayout的直接子View指定Behavior。因为Behavior是保存在CoordinatorLayout.LayoutParams的mBehavior.
  • 有三种方法给CoordinatorLayout的直接子View指定Behavior。

1.代码方式

CustomBehavior customBehavior = new CustomBehavior();CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) yourView.getLayoutParams();params.setBehavior(customBehavior);复制代码

2.XML

复制代码

3.注解 当想给自定义View指定一个默认Behavior,可以用这种方法。但是这种方式的优先级低于前面两种。

@CoordinatorLayout.DefaultBehavior(CustomBehavior.class)public class CustomFrameLayout extends FrameLayout {}复制代码

转载地址:http://koaal.baihongyu.com/

你可能感兴趣的文章
【数据结构与算法】二叉树深度遍历(递归)
查看>>
iOS开发--基于AFNetWorking3.0的图片缓存分析
查看>>
使用jqMobi开发app基础:弹出内容的设计
查看>>
3.Java集合总结系列:Set接口及其实现
查看>>
ExtJs之Element.select函数
查看>>
驱动程序调试方法之printk——自制proc文件(一)
查看>>
Swift 可选类型-备
查看>>
使用开源软件的原因
查看>>
数据结构和算法 – 10.集合
查看>>
关于新版SDK报错You need to use a Theme.AppCompat theme的两种解决办法
查看>>
微信热门话题榜要上线了?腾讯微博的变身?
查看>>
Android 初阶自定义 View 字符头像
查看>>
Oracle Stream配置详细步骤
查看>>
设计模式学习笔记(十五:组合模式)
查看>>
继承与组合
查看>>
Spring 读取配置文件(一)
查看>>
转:JavaScript函数式编程(三)
查看>>
isnull的使用方法
查看>>
struts2和spring mvc的比较
查看>>
Apache shiro之权限校验流程
查看>>