yii2怎么实现自己的layouts
发布网友
发布时间:2022-04-25 13:53
我来回答
共1个回答
热心网友
时间:2022-04-06 06:08
创建ViewGroup实现类,重写其构造方法,onMeasure, onLayout,实现其ViewGroup.LayoutParams实现类并重写generateLayoutParams方法
自定义子View使用的XML配置项behavior_class,类型为string,并在LayoutParams构造方法里读取该值并构造对应的Behavior实现类
定义抽象Behavior类,添加抽象方法layoutDependsOn,用于返回依赖的对象
通过为ViewTree注册监听来监听界面View的变化
通过实现NestedScrollingParent接口并实现onStartNestedScroll与onNestedScroll方法来监听NestedScrollView子view的滚动事件
在viewtree及scrollview监听事件方法里循环子View,当发现存在behavior_class配置项且依赖对象发生变化时,调用子类上beavior实现的onDepdentViewChanged或onNestedScroll方法
实现自己的layouts