ht.ui.DockManager(viewGroup)

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 布局器对象

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

组件

Returns:
ht.ui.Dialog -

所在 Dialog

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