跳转至

停靠栏控件 (SDockBar)

SDockBar 是 SOUI 中配合 FrameLayout 使用的可停靠窗口控件,提供了类似传统 GUI 框架中停靠面板的功能。

基本信息

  • 类名SDockBar
  • 控件标签dockbar
  • 基类SWindow

功能特点

  • 支持可停靠的窗口容器
  • 提供标题栏和关闭按钮
  • 支持窗口大小调整
  • 可与 FrameLayout 配合使用,实现复杂的界面布局

属性说明

属性名 类型 默认值 说明
captionSkin 皮肤 - 标题栏皮肤
closeBtnSkin 皮肤 - 关闭按钮皮肤
captionHeight 布局大小 - 标题栏高度
resizable 布尔值 true 是否可调整大小

使用示例

基本停靠栏

<dockbar name="property_panel_dock" 
         dock="right" 
         size="200,-1" 
         captionSkin="skin:caption" 
         closeBtnSkin="skin:close_btn" 
         captionHeight="24">
    <window colorBkgnd="#f0f0f0" size="-1,-1">
        <text>属性面板内容</text>
    </window>
</dockbar>

与 FrameLayout 配合使用

<window layout="frame" size="800,600" colorBkgnd="#cccccc">
    <!-- 左侧停靠栏 -->
    <dockbar name="toolbox_dock" 
             dock="left" 
             size="150,-1" 
             captionSkin="skin:caption" 
             closeBtnSkin="skin:close_btn">
        <window colorBkgnd="#f0f0f0" size="-1,-1">
            <text>工具箱</text>
        </window>
    </dockbar>

    <!-- 右侧停靠栏 -->
    <dockbar name="property_dock" 
             dock="right" 
             size="200,-1" 
             captionSkin="skin:caption" 
             closeBtnSkin="skin:close_btn">
        <window colorBkgnd="#f0f0f0" size="-1,-1">
            <text>属性面板</text>
        </window>
    </dockbar>

    <!-- 主内容区域 -->
    <window dock="main" colorBkgnd="#ffffff">
        <text>主内容区域</text>
    </window>
</window>

事件处理

SDockBar 继承自 SWindow,支持标准的窗口事件。

最佳实践

  1. 与 FrameLayout 配合:SDockBar 通常与 FrameLayout 配合使用,通过设置 dock 属性指定停靠位置。

  2. 皮肤设置:为标题栏和关闭按钮设置合适的皮肤,提升视觉效果。

  3. 大小调整:通过 resizable 属性控制是否允许用户调整停靠栏大小。

  4. 标题栏高度:根据界面风格设置合适的标题栏高度。

  5. 内容布局:在 SDockBar 内部使用合适的布局管理器组织内容。

常见问题

Q: SDockBar 无法停靠到指定位置怎么办?

A: 确保父容器使用了 FrameLayout,并且正确设置了 dock 属性。

Q: 如何控制 SDockBar 的显示和隐藏?

A: 使用 SetVisible 方法控制 SDockBar 的显示状态。

相关控件