ui_slipflow_view
ui_slipflow_view 模块提供滑动流视图组件,支持卡片式滑动流展示效果。
Class Summary
OHOS::UISlipflowView
滑动流视图组件,支持水平滑动切换子页面、上滑删除及动画效果
- 构造:
explicit UISlipflowView() -
成员函数:
接口名称 功能简述 UISlipflowView 构造 UISlipflowView 对象 Add 添加子视图到滑动流中 Remove 从滑动流中移除子视图 GetPageWidth 获取页面宽度 GetPageHeight 获取页面高度 SetCurrentPage 设置当前显示页面的索引 GetCurrentPage 获取当前显示页面的索引 GetCurrentView 获取当前显示的子视图 GetViewType 获取组件类型 GetViewByIndex 根据索引获取子视图 SetAnimatorTime 设置页面动画时长 SetMoveCoefficient 设置当前页面及右侧页面的移动系数 OnDragEvent 处理拖拽事件 OnDragStartEvent 处理拖拽开始事件 OnDragEndEvent 处理拖拽结束事件 SetOnSlipflowListener 设置滑动流滚动监听器 SetDirection 设置方向(已禁用) GetDirection 获取方向(已禁用) -
使用包含头文件:
#include "components/ui_slipflow_view.h" - 声明头文件:
middleware/services/gui/uikit/proprietary/include/components/ui_slipflow_view.h - 公有运算符:无
- 继承关系:UIAbstractScroll
- 嵌套类型:OnSlipflowScrollListener
- 模板形参:无
Functions
OHOS::UISlipflowView
UISlipflowView
explicit UISlipflowView()
功能说明
- 核心用途:构造 UISlipflowView 滑动流视图对象
- 设计目的:初始化滑动流组件的基础状态与内部参数
- 使用场景:创建滑动流视图实例后,通过 Add 添加子视图并配置滑动参数
Add
void Add(UIView* view) override
功能说明
- 核心用途:向滑动流视图中添加子视图
- 设计目的:所有子视图应具有相同的宽度和高度,添加后自动参与滑动布局
- 使用场景:构建滑动流页面时逐个添加子视图
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| view | UIView* | 入参指针,指向待添加的子视图 | 非 nullptr |
Remove
void Remove(UIView* view) override
功能说明
- 核心用途:从滑动流视图中移除指定子视图
- 设计目的:移除后滑动流自动重新排列剩余子视图
- 使用场景:动态删除页面或上滑删除场景
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| view | UIView* | 入参指针,指向待移除的子视图 | 非 nullptr |
GetPageWidth
uint16_t GetPageWidth() const
功能说明
- 核心用途:获取滑动流页面的宽度
- 设计目的:页面宽度由子视图宽度决定,用于外部布局计算
- 使用场景:获取当前页面宽度以进行界面布局或动画计算
返回值
- 返回类型:
uint16_t
返回页面宽度
| 返回值 | 触发场景 |
|---|---|
| 页面宽度值 | 子视图宽度 |
GetPageHeight
uint16_t GetPageHeight() const
功能说明
- 核心用途:获取滑动流页面的高度
- 设计目的:页面高度由子视图高度决定,用于外部布局计算
- 使用场景:获取当前页面高度以进行界面布局或动画计算
返回值
- 返回类型:
uint16_t
返回页面高度
| 返回值 | 触发场景 |
|---|---|
| 页面高度值 | 子视图高度 |
SetCurrentPage
void SetCurrentPage(uint16_t index, bool needAnimator = false)
功能说明
- 核心用途:设置当前显示页面的索引
- 设计目的:通过索引切换到指定页面,可选是否启用翻页动画
- 使用场景:页面跳转、初始化定位到指定页面
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| index | uint16_t | 目标页面的索引 | 0 ~ 子视图数量 - 1 |
| needAnimator | bool | 是否需要翻页动画,默认 false | false:无动画;true:启用动画 |
GetCurrentPage
uint16_t GetCurrentPage() const
功能说明
- 核心用途:获取当前显示页面的索引
- 设计目的:返回当前页面在子视图列表中的位置
- 使用场景:查询当前页面位置、页面切换回调中获取索引
返回值
- 返回类型:
uint16_t
返回当前页面索引
| 返回值 | 触发场景 |
|---|---|
| 当前页面索引值 | 当前显示页面的位置 |
GetCurrentView
UIView* GetCurrentView() const
功能说明
- 核心用途:获取当前显示的子视图
- 设计目的:返回当前页面所对应的 UIView 指针,便于外部操作当前页面
- 使用场景:获取当前页面视图进行属性修改或内容更新
返回值
- 返回类型:
UIView*
返回当前子视图指针
| 返回值 | 触发场景 |
|---|---|
| 非 nullptr | 当前页面存在子视图 |
| nullptr | 无子视图 |
GetViewType
UIViewType GetViewType() const override
功能说明
- 核心用途:获取组件类型
- 设计目的:返回 UI_SLIP_FLOW 类型标识,用于类型识别
- 使用场景:类型判断、组件遍历时区分滑动流视图
返回值
- 返回类型:
UIViewType
返回组件类型
| 返回值 | 触发场景 |
|---|---|
| UI_SLIP_FLOW | 当前组件为滑动流视图 |
GetViewByIndex
UIView* GetViewByIndex(uint16_t index)
功能说明
- 核心用途:根据索引获取子视图
- 设计目的:通过索引值查找并返回对应的子视图指针
- 使用场景:根据索引访问特定子视图进行操作
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| index | uint16_t | 子视图的索引 | 0 ~ 子视图数量 - 1 |
返回值
- 返回类型:
UIView*
返回对应索引的子视图指针
| 返回值 | 触发场景 |
|---|---|
| 非 nullptr | 索引合法且对应子视图存在 |
| nullptr | 索引越界或子视图不存在 |
SetAnimatorTime
void SetAnimatorTime(uint16_t time)
功能说明
- 核心用途:设置页面动画时长(tick 数)
- 设计目的:动画期间页面将超出空白区域,控制动画播放速度
- 使用场景:自定义翻页动画速度,默认值为 ANIMATOR_TIME(12)
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| time | uint16_t | 动画时长,单位为 tick | > 0 |
SetMoveCoefficient
void SetMoveCoefficient(uint16_t coefficient)
功能说明
- 核心用途:设置当前页面及右侧页面的移动系数
- 设计目的:当前页面和右侧页面的移动速度为其他页面的 coefficient 倍
- 使用场景:调整滑动流中不同页面的相对移动速度,实现差异化滑动效果
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| coefficient | uint16_t | 移动系数,当前及右侧页面速度倍率 | > 0 |
OnDragEvent
bool OnDragEvent(const DragEvent& event) override
功能说明
- 核心用途:处理拖拽事件,在拖拽过程中切换到指定视图
- 设计目的:实现拖拽过程中的实时页面跟随与切换
- 使用场景:用户手指拖拽时触发,控制滑动流的拖拽响应
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| event | const DragEvent& | 入参只读引用,拖拽事件对象 | - |
返回值
- 返回类型:
bool
返回事件处理结果
| 返回值 | 触发场景 |
|---|---|
| true(1) | 事件已处理 |
| false(0) | 事件未处理 |
OnDragStartEvent
bool OnDragStartEvent(const DragEvent& event) override
功能说明
- 核心用途:处理拖拽开始事件
- 设计目的:在拖拽开始时初始化滑动状态并切换到指定视图
- 使用场景:用户手指按下并开始拖拽时触发
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| event | const DragEvent& | 入参只读引用,拖拽开始事件对象 | - |
返回值
- 返回类型:
bool
返回事件处理结果
| 返回值 | 触发场景 |
|---|---|
| true(1) | 事件已处理 |
| false(0) | 事件未处理 |
OnDragEndEvent
bool OnDragEndEvent(const DragEvent& event) override
功能说明
- 核心用途:处理拖拽结束事件
- 设计目的:在拖拽结束时完成页面定位与回弹或切换
- 使用场景:用户手指释放时触发,决定最终停留页面
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| event | const DragEvent& | 入参只读引用,拖拽结束事件对象 | - |
返回值
- 返回类型:
bool
返回事件处理结果
| 返回值 | 触发场景 |
|---|---|
| true(1) | 事件已处理 |
| false(0) | 事件未处理 |
SetOnSlipflowListener
void SetOnSlipflowListener(OnSlipflowScrollListener* onSlipflowListener)
功能说明
- 核心用途:设置滑动流滚动监听器
- 设计目的:注册监听器以接收滑动流滚动、上滑删除等回调
- 使用场景:需要在页面滑动、上滑删除等事件发生时执行自定义逻辑
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| onSlipflowListener | OnSlipflowScrollListener* | 入参指针,滑动流滚动监听器 | 可为 nullptr |
SetDirection
void SetDirection(uint8_t direction) = delete
功能说明
- 核心用途:设置方向(已禁用)
- 设计目的:UISlipflowView 不支持 SetDirection,该方法被删除
- 使用场景:编译期禁止调用,调用将导致编译错误
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| direction | uint8_t | 方向值 | - |
GetDirection
uint8_t GetDirection() const = delete
功能说明
- 核心用途:获取方向(已禁用)
- 设计目的:UISlipflowView 不支持 GetDirection,该方法被删除
- 使用场景:编译期禁止调用,调用将导致编译错误
Structures
TempXoffsetInfo
struct TempXoffsetInfo {
int16_t tempMasterXoffset;
int16_t tempSlaveXoffset;
int16_t tempMasterYoffset;
int16_t tempSlaveYoffset;
};
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| tempMasterXoffset | int16_t | 主视图水平方向临时偏移量 |
| tempSlaveXoffset | int16_t | 从视图水平方向临时偏移量 |
| tempMasterYoffset | int16_t | 主视图垂直方向临时偏移量 |
| tempSlaveYoffset | int16_t | 从视图垂直方向临时偏移量 |