View
容器视图,类似于web端的div标签,内部可以放入其他子视图。
创建
js
let view = new View(); // 无参数
let view = new View(id); // 有参数,默认参数是view的id
样式
除支持 通用布局样式 和 通用视图样式 以外,还支持以下样式:
属性名 | 类型 | 默认值 | 说明 | 示例 |
---|---|---|---|---|
overflow | string | 'visible' | 子控件超出父容器部分是否显示 | overflow: 'hidden' | 'visible' |
属性
支持 通用视图属性。
事件
事件名 | 类型 | 说明 |
---|---|---|
touch | TouchEvent | 触摸事件 |
tap | TapEvent | 点击事件 |
longPress | LongPressEvent | 长按事件 |
pan | PanEvent | 拖动事件 |
swipe | SwipeEvent | 扫动事件 |
pinch | PinchEvent | 缩放事件 |
方法
js
/**
* 添加事件监听,可以对一个事件添加多个回调
*
* @param key 事件名称
* @param callback 事件回调,返回event事件信息
*/
addEventListener(key: string, callback: (event: Event) => void);
js
/**
* 移除事件监听,移除一个回调不会影响其他回调
*
* @param key 事件名称
* @param callback 事件回调,addEventListener时的callback对象
*/
removeEventListener(key: string, callback: (event: Event) => void);
js
/**
* 添加动画,对同一个 key 添加多个动画,将会以且仅以最后一个动画为准
*
* @param animation 动画对象
* @param key 动画对象的唯一key
**/
addAnimation(animation: BasicAnimation | KeyframeAnimation, key: string)
js
/**
* 删除动画
*
* @param key 动画对象的唯一key
*/
removeAnimationForKey(key: string)
js
/**
* 删除所有动画
*/
removeAllAnimation()
js
/**
* 异步获取控件宽高等信息(单位:dp或pt)
*
* @param callback 结果回调,返回rect对象
* rect.width:number 控件宽度
* rect.height:number 控件高度
* rect.left:number 控件左边框相对于父容器左边框的坐标
* rect.right:number 控件右边框相对于父容器左边框的坐标
* rect.top:number 控件上边框相对于父容器上边框的坐标
* rect.bottom:number 控件下边框相对于父容器上边框的坐标
* rect.windowLeft:number 控件左边框相对于屏幕左边缘的坐标
* rect.windowRight:number 控件右边框相对于屏幕左边缘的坐标
* rect.windowTop:number 控件上边框相对于屏幕上边缘的坐标
* rect.windowBottom:number 控件下边框相对于屏幕上边缘的坐标
*/
getRect(callback: (rect: Object) => void)
js
/**
* 添加子视图
* @param child 子视图
*/
appendChild(child: View);
js
/**
* 移除子视图
* @param child 子视图
*/
removeChild(child: View);
js
/**
* 移除所有子视图
*/
removeAll();
js
/**
* 在制定子视图前插入一个子视图
*
* @param child 新的子视图
* @param existingChild 指定的子视图
*/
insertBefore(child: View, existingChild: View);
js
/**
* 把指定的子视图替换成另一个子视图
*
* @param newChild 新的子视图
* @param oldChild 指定的子视图
*/
replaceChild(newChild: View, oldChild: View);
示例
js
let view = new View();
view.style = {
width: 120,
height: 120,
backgroundColor: '#F0F0F0',
};
this.appendChild(view);