new DockManager(viewGroup)
此类用于配合 SplitLayout 和 TabLayout 实现 dock 任意停靠功能
Parameters:
Name | Type | Description |
---|---|---|
viewGroup |
ht.ui.RelativeLayout |
Example
// 正常创建和初始化 SplitLayout 和 TabLayout 对象
var splitLayout = new ht.ui.SplitLayout();
var tabLayout = new ht.ui.TabLayout();
tabLayout.addView(new ht.ui.Button());
tabLayout.addView(new ht.ui.TextField());
tabLayout.addView(new ht.ui.Button());
splitLayout.addView(tabLayout, {region: 'first'})
// 在 SplitLayout 布局器对象上启用 dock
new ht.ui.DockManager(splitLayout);
Methods
-
addPropertyChangeListener(listener, scope, ahead) → {void}
-
增加属性事件变化监听函数
Parameters:
Name Type Attributes Description listener
Object 监听器函数
scope
any <optional>
函数域
ahead
boolean <optional>
是否将当前监听器插入到监听器列表开头
Returns:
void -
clearEmptyLayout() → {void}
-
清除空的布局器
Returns:
void -
createDialog(viewConfig, info) → {void}
-
创建 Dialog
Parameters:
Name Type Attributes Description viewConfig
DockManagerViewConfig info
any <optional>
Returns:
void -
createSplitLayout(viewConfig, info) → {void}
-
创建 SplitLayout
Parameters:
Name Type Attributes Description viewConfig
DockManagerViewConfig info
any <optional>
Returns:
void -
createTabLayout(viewConfig) → {void}
-
创建 TabLayout
Parameters:
Name Type Description viewConfig
DockManagerViewConfig Returns:
void -
drawFloatTip(floatG, width, height, status) → {void}
-
绘制浮动拖拽提示
Parameters:
Name Type Description floatG
CanvasRenderingContext2D 绘制浮动拖拽提示的 canvas 画笔
width
number canvas 宽度
height
number canvas 高度交互状态
status
string 交互状态 normal/hover
Returns:
void -
figureLayoutConfig() → {Array.<DockManagerViewConfig>}
-
计算布局配置
Returns:
Array.<DockManagerViewConfig> -
firePropertyChange(property, oldValue, newValue, compareFunc) → {boolean}
-
派发属性变化事件
Parameters:
Name Type Attributes Description property
string 属性名
oldValue
any 属性变化之前的值
newValue
any 属性变化之后的值
compareFunc
Object <optional>
比较函数,用于比较新值和旧值是否一致,如果一致则不会派发事件
Returns:
boolean -事件是否派发成功
-
floatHitTest(canvas, nativeEvent) → {boolean}
-
判断交互位置是否在浮动拖拽提示上
Parameters:
Name Type Description canvas
HTMLCanvasElement 绘制浮动拖拽提示的 canvas
nativeEvent
MouseEvent | TouchEvent 交互事件信息
Returns:
boolean -是否在浮动拖拽提示上
-
fp(property, oldValue, newValue, compareFunc) → {boolean}
-
派发属性变化事件,{firePropertyChange} 的缩写
Parameters:
Name Type Attributes Description property
string 属性名
oldValue
any 属性变化之前的值
newValue
any 属性变化之后的值
compareFunc
Object <optional>
比较函数,用于比较新值和旧值是否一致,如果一致则不会派发事件
Returns:
boolean -事件是否派发成功
-
getCanvasG(canvas, width, height) → {CanvasRenderingContext2D}
-
获取绘制浮动拖拽提示的 canvas 画笔
Parameters:
Name Type Description canvas
HTMLCanvasElement 绘制浮动拖拽提示的 canvas
width
number canvas 宽度
height
number canvas 高度
Returns:
CanvasRenderingContext2D -绘制浮动拖拽提示的 canvas 画笔
-
getInsertLineColor() → {string}
-
获取拖拽插入线的颜色
Returns:
string -
getLayoutConfig() → {Array.<DockManagerViewConfig>}
-
获取布局配置
Returns:
Array.<DockManagerViewConfig> -
getLayoutConfigJSON() → {string}
-
获取布局配置
Returns:
string -
getMaskBackground() → {string}
-
获取拖拽提示遮罩的背景颜色
Returns:
string -
getRootHitSize() → {number}
-
获取拖拽到根容器时的点击范围
Returns:
number -
getRootMaskBackground() → {string}
-
获取拖拽到根容器时提示遮罩的背景颜色
Returns:
string -
getViewGroup() → {ht.ui.RelativeLayout}
-
获取绑定的 RelativeLayout 布局器对象
Returns:
ht.ui.RelativeLayout -
hide(id) → {void}
-
隐藏面板
Parameters:
Name Type Description id
string | number | ht.ui.View 组件或组件 id
Returns:
void -
isInFloat(view) → {ht.ui.Dialog}
-
判断是否处于浮动状态,是则获取到所在 Dialog
Parameters:
Name Type Description view
ht.ui.View 组件
-
mp(listener, scope, ahead) → {void}
-
增加属性事件变化监听函数,{addPropertyChangeListener} 的缩写
Parameters:
Name Type Attributes Description listener
Object 监听器函数
scope
any <optional>
函数域
ahead
boolean <optional>
是否将当前监听器插入到监听器列表开头
Returns:
void -
removePropertyChangeListener(listener, scope) → {void}
-
删除属性事件变化监听器
Parameters:
Name Type Attributes Description listener
Object 监听器函数
scope
any <optional>
函数域
Returns:
void -
setInsertLineColor(color) → {void}
-
设置拖拽插入线的颜色
Parameters:
Name Type Description color
string 颜色,如 '#ff0000'
Returns:
void -
setLayoutConfig(layoutConfig) → {void}
-
设置布局配置
Parameters:
Name Type Description layoutConfig
Array.<DockManagerViewConfig> Returns:
void -
setLayoutConfigJSON(layoutConfigJSON) → {void}
-
设置布局配置
Parameters:
Name Type Description layoutConfigJSON
string Returns:
void -
setMaskBackground(color) → {void}
-
设置拖拽提示遮罩的背景颜色
Parameters:
Name Type Description color
string 背景颜色,如 '#ff0000'
Returns:
void -
setRootHitSize(size) → {void}
-
设置拖拽到根容器时的点击范围
Parameters:
Name Type Description size
number Returns:
void -
setRootMaskBackground(color) → {void}
-
设置拖拽到根容器时提示遮罩的背景颜色
Parameters:
Name Type Description color
string 背景颜色,如 '#ff0000'
Returns:
void -
setViewGroup(viewGroup) → {void}
-
绑定 RelativeLayout 布局器并在此布局器上启用 dock 功能
Parameters:
Name Type Description viewGroup
ht.ui.RelativeLayout Returns:
void -
show(id) → {void}
-
显示面板
Parameters:
Name Type Description id
string | number | ht.ui.View 组件或组件 id
Returns:
void -
ump(listener, scope) → {void}
-
删除属性事件变化监听器,{removePropertyChangeListener} 的缩写
Parameters:
Name Type Attributes Description listener
Object 监听器函数
scope
any <optional>
函数域
Returns:
void -
updateLayoutConfig() → {void}
-
更新布局配置
Returns:
void -
validateLayout() → {void}
-
重新布局
Returns:
void