Skip to content
目录

View

容器视图,类似于web端的div标签,内部可以放入其他子视图。

创建

js
let view = new View();    // 无参数
let view = new View(id);  // 有参数,默认参数是view的id

样式

除支持 通用布局样式通用视图样式 以外,还支持以下样式:

属性名类型默认值说明示例
overflowstring'visible'子控件超出父容器部分是否显示overflow: 'hidden' | 'visible'

属性

支持 通用视图属性

事件

事件名类型说明
touchTouchEvent触摸事件
tapTapEvent点击事件
longPressLongPressEvent长按事件
panPanEvent拖动事件
swipeSwipeEvent扫动事件
pinchPinchEvent缩放事件

方法

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);