跳转至

ui_abstract_scroll

ui_abstract_scroll 模块提供抽象滚动组件,包含滚动条与滚动容器的通用属性、动画缓动与布局计算功能。

Class Summary

OHOS::BarEaseInOutAnimator

前向声明类,定义不在本头文件中

  • 构造:无
  • 成员函数:无
  • 使用包含头文件#include "components/ui_abstract_scroll.h"
  • 声明头文件middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_scroll.h
  • 公有运算符:无
  • 继承关系:无
  • 嵌套类型:无
  • 模板形参:无

OHOS::UIAbstractScrollBar

前向声明类,定义不在本头文件中

  • 构造:无
  • 成员函数:无
  • 使用包含头文件#include "components/ui_abstract_scroll.h"
  • 声明头文件middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_scroll.h
  • 公有运算符:无
  • 继承关系:无
  • 嵌套类型:无
  • 模板形参:无

OHOS::UIAbstractScroll

定义滚动视图的属性,包括滚动方向、空白大小、动画速度与效果

Functions

OHOS::UIAbstractScroll

GetViewType

UIViewType GetViewType() const override

功能说明

  • 核心用途:获取当前视图的类型标识
  • 返回值固定为 UI_ABSTRACT_SCROLL,用于区分不同类型的 UIView
  • 该函数为 const 成员函数,不修改对象状态

返回值

  • 返回类型:UIViewType

返回视图类型标识

返回值 触发场景
UI_ABSTRACT_SCROLL 当前对象为 UIAbstractScroll 类型

SetScrollBlankSize

void SetScrollBlankSize(uint16_t size, UIAbstractScroll::Direction direction = UIAbstractScroll::Direction::ALL)

功能说明

  • 核心用途:设置滚动视图在指定方向上的空白大小
  • 当 direction 为 ALL 时,同时设置所有方向的空白大小;指定方向时仅设置该方向的空白大小
  • 默认空白大小为 0,即首尾节点滚动到视图边界即停止

入参

名称 参数类型 详细说明 约束取值范围
size uint16_t 空白大小(像素) 0 ~ 65535
direction UIAbstractScroll::Direction 空白大小设置的方向 Direction 枚举值,默认 ALL

GetScrollBlankSize

uint16_t GetScrollBlankSize(UIAbstractScroll::Direction direction = UIAbstractScroll::Direction::ALL) const

功能说明

  • 核心用途:获取滚动视图在指定方向上的空白大小
  • 根据传入方向返回对应的空白大小值
  • 该函数为 const 成员函数,不修改对象状态

入参

名称 参数类型 详细说明 约束取值范围
direction UIAbstractScroll::Direction 查询空白大小的方向 Direction 枚举值,默认 ALL

返回值

  • 返回类型:uint16_t

返回指定方向的空白大小(像素)

返回值 触发场景
0 该方向未设置空白大小
非0值 该方向已设置的空白大小

SetMaxScrollDistance

void SetMaxScrollDistance(uint16_t distance)

功能说明

  • 核心用途:设置手指抬起后滚动视图的最大滚动距离
  • 默认值为 0,表示不限制滚动距离
  • 该值用于限制惯性滚动的总距离

入参

名称 参数类型 详细说明 约束取值范围
distance uint16_t 最大滚动距离(像素) 0 ~ 65535,0 表示不限制

SetReboundSize

void SetReboundSize(uint16_t size, UIAbstractScroll::Direction direction = UIAbstractScroll::Direction::ALL)

功能说明

  • 核心用途:设置滚动条滑块到达末端释放后的回弹距离
  • 当 direction 为 ALL 时,同时设置所有方向的回弹距离;指定方向时仅设置该方向的回弹距离
  • 回弹距离指滑块到达末端释放后可继续移动的距离

入参

名称 参数类型 详细说明 约束取值范围
size uint16_t 回弹距离(像素) 0 ~ 65535
direction UIAbstractScroll::Direction 回弹距离设置的方向 Direction 枚举值,默认 ALL

GetReboundSize

uint16_t GetReboundSize(UIAbstractScroll::Direction direction = UIAbstractScroll::Direction::ALL) const

功能说明

  • 核心用途:获取滚动条滑块到达末端释放后的回弹距离
  • 根据传入方向返回对应的回弹距离值
  • 该函数为 const 成员函数,不修改对象状态

入参

名称 参数类型 详细说明 约束取值范围
direction UIAbstractScroll::Direction 查询回弹距离的方向 Direction 枚举值,默认 ALL

返回值

  • 返回类型:uint16_t

返回指定方向的回弹距离(像素)

返回值 触发场景
0 该方向未设置回弹距离
非0值 该方向已设置的回弹距离

GetMaxScrollDistance

uint16_t GetMaxScrollDistance() const

功能说明

  • 核心用途:获取手指抬起后滚动视图的最大滚动距离
  • 默认值为 0,表示不限制滚动距离
  • 该函数为 const 成员函数,不修改对象状态

返回值

  • 返回类型:uint16_t

返回最大滚动距离(像素)

返回值 触发场景
0 未限制滚动距离
非0值 已设置的最大滚动距离

SetDragFunc

void SetDragFunc(EasingFunc func)

功能说明

  • 核心用途:设置手指抬起后滚动动画的缓动函数
  • 默认缓动函数为 EasingEquation::CubicEaseOut
  • 缓动函数决定滚动动画的速度曲线

入参

名称 参数类型 详细说明 约束取值范围
func EasingFunc 缓动函数指针 有效的 EasingFunc 函数指针

GetDragFunc

EasingFunc GetDragFunc() const

功能说明

  • 核心用途:获取当前设置的拖动缓动函数
  • 默认缓动函数为 EasingEquation::CubicEaseOut
  • 该函数为 const 成员函数,不修改对象状态

返回值

  • 返回类型:EasingFunc

返回当前缓动函数指针

返回值 触发场景
非nullptr 已设置的缓动函数指针
nullptr 未设置缓动函数

SetThrowDrag

void SetThrowDrag(bool throwDrag)

功能说明

  • 核心用途:设置手指抬起后是否继续惯性滚动
  • true 表示继续惯性滚动,false 表示手指抬起后立即停止
  • 默认值为 false

入参

名称 参数类型 详细说明 约束取值范围
throwDrag bool 是否启用惯性滚动 true / false

SetElastic

void SetElastic(bool isElastic)

功能说明

  • 核心用途:设置滚动越界后是否启用弹性回弹模式
  • true 表示启用弹性回弹,false 表示不启用
  • 默认值为 false

入参

名称 参数类型 详细说明 约束取值范围
isElastic bool 是否启用弹性回弹 true / false

SetElasticTime

void SetElasticTime(uint16_t elasticTime)

功能说明

  • 核心用途:设置弹性回弹动画的持续时间
  • 默认值为 200(毫秒)
  • 仅在弹性模式启用时生效

入参

名称 参数类型 详细说明 约束取值范围
elasticTime uint16_t 弹性回弹时间(毫秒) 0 ~ 65535,默认 200

MoveChildByOffset

void MoveChildByOffset(int16_t offsetX, int16_t offsetY) override

功能说明

  • 核心用途:将所有子视图移动指定偏移量
  • offsetX 为 X 轴偏移距离,offsetY 为 Y 轴偏移距离
  • 该函数重写自 UIViewGroup 基类

入参

名称 参数类型 详细说明 约束取值范围
offsetX int16_t X 轴偏移距离(像素) -32768 ~ 32767
offsetY int16_t Y 轴偏移距离(像素) -32768 ~ 32767

SetDragACCLevel

void SetDragACCLevel(uint8_t value)

功能说明

  • 核心用途:设置拖动加速度系数
  • 加速度系数越大,惯性滚动速度越快
  • 默认值为 10;传入 0 时设置不生效

入参

名称 参数类型 详细说明 约束取值范围
value uint8_t 拖动加速度系数 1 ~ 255,0 不生效

GetDragACCLevel

uint8_t GetDragACCLevel() const

功能说明

  • 核心用途:获取当前拖动加速度系数
  • 默认值为 10
  • 该函数为 const 成员函数,不修改对象状态

返回值

  • 返回类型:uint8_t

返回拖动加速度系数

返回值 触发场景
10 默认加速度系数
其他值 已设置的加速度系数

SetSwipeACCLevel

void SetSwipeACCLevel(uint8_t value)

功能说明

  • 核心用途:设置手指抬起后补偿距离系数
  • 补偿距离系数影响手指抬起后的额外滚动距离
  • 默认值为 0

入参

名称 参数类型 详细说明 约束取值范围
value uint8_t 补偿距离系数 0 ~ 255

GetSwipeACCLevel

uint8_t GetSwipeACCLevel() const

功能说明

  • 核心用途:获取手指抬起后补偿距离系数
  • 默认值为 0
  • 该函数为 const 成员函数,不修改对象状态

返回值

  • 返回类型:uint8_t

返回补偿距离系数

返回值 触发场景
0 未设置补偿距离系数
非0值 已设置的补偿距离系数

SetRotateACCLevel

void SetRotateACCLevel(uint8_t value)

功能说明

  • 核心用途:设置旋转拖抛动画系数
  • 系数越大,旋转拖抛后滚动距离越远
  • 默认值为 0

前置条件

  • 需启用 ENABLE_ROTATE_INPUT 宏配置
  • 当前对象已构造完成

入参

名称 参数类型 详细说明 约束取值范围
value uint8_t 旋转拖抛动画系数 0 ~ 255

Kconfig 配置

配置项 说明 默认值
ENABLE_ROTATE_INPUT 启用旋转输入功能 n

GetRotateACCLevel

uint8_t GetRotateACCLevel() const

功能说明

  • 核心用途:获取旋转拖抛动画系数
  • 系数越大,旋转拖抛后滚动距离越远
  • 该函数为 const 成员函数,不修改对象状态

前置条件

  • 需启用 ENABLE_ROTATE_INPUT 宏配置

返回值

  • 返回类型:uint8_t

返回旋转拖抛动画系数

返回值 触发场景
0 未设置旋转拖抛系数
非0值 已设置的旋转拖抛系数

Kconfig 配置

配置项 说明 默认值
ENABLE_ROTATE_INPUT 启用旋转输入功能 n

GetRotateFactor

float GetRotateFactor() const

功能说明

  • 核心用途:获取旋转因子
  • 旋转因子影响旋转输入与滚动距离的映射比例
  • 该函数为 const 成员函数,不修改对象状态

前置条件

  • 需启用 ENABLE_ROTATE_INPUT 宏配置

返回值

  • 返回类型:float

返回旋转因子

返回值 触发场景
正值 正向旋转因子
负值 反向旋转因子

Kconfig 配置

配置项 说明 默认值
ENABLE_ROTATE_INPUT 启用旋转输入功能 n

SetRotateFactor

void SetRotateFactor(float factor)

功能说明

  • 核心用途:设置旋转因子
  • 旋转因子绝对值超过 MAX_ROTATE_FACTOR(128) 时会被截断为边界值
  • 正值表示正向旋转,负值表示反向旋转

前置条件

  • 需启用 ENABLE_ROTATE_INPUT 宏配置
  • 当前对象已构造完成

入参

名称 参数类型 详细说明 约束取值范围
factor float 旋转因子 -128.0 ~ 128.0,超出范围自动截断

Kconfig 配置

配置项 说明 默认值
ENABLE_ROTATE_INPUT 启用旋转输入功能 n

SetRotateThrowThreshold

void SetRotateThrowThreshold(uint8_t threshold)

功能说明

  • 核心用途:设置旋转拖抛阈值
  • 阈值越大,旋转拖抛越容易触发滚动
  • 传入 0 时不生效

前置条件

  • 需启用 ENABLE_ROTATE_INPUT 宏配置
  • 当前对象已构造完成

入参

名称 参数类型 详细说明 约束取值范围
threshold uint8_t 旋转拖抛阈值 1 ~ 255,0 不生效

Kconfig 配置

配置项 说明 默认值
ENABLE_ROTATE_INPUT 启用旋转输入功能 n

GetRotateThrowThreshold

uint8_t GetRotateThrowThreshold() const

功能说明

  • 核心用途:获取旋转拖抛阈值
  • 阈值越大,旋转拖抛越容易触发滚动
  • 该函数为 const 成员函数,不修改对象状态

前置条件

  • 需启用 ENABLE_ROTATE_INPUT 宏配置

返回值

  • 返回类型:uint8_t

返回旋转拖抛阈值

返回值 触发场景
0 未设置旋转拖抛阈值
非0值 已设置的旋转拖抛阈值

Kconfig 配置

配置项 说明 默认值
ENABLE_ROTATE_INPUT 启用旋转输入功能 n

OnRotateStartEvent

bool OnRotateStartEvent(const RotateEvent& event) override

功能说明

  • 核心用途:处理旋转开始事件
  • 重写自基类的旋转事件处理函数
  • 返回 true 表示事件已消费,false 表示未消费

前置条件

  • 需启用 ENABLE_ROTATE_INPUT 宏配置
  • 当前对象已添加到视图树中

入参

名称 参数类型 详细说明 约束取值范围
event const RotateEvent& 入参只读引用,旋转事件数据 有效的 RotateEvent 对象

返回值

  • 返回类型:bool

返回事件消费状态

返回值 触发场景
true 旋转开始事件已消费
false 旋转开始事件未消费

Kconfig 配置

配置项 说明 默认值
ENABLE_ROTATE_INPUT 启用旋转输入功能 n

OnRotateEvent

bool OnRotateEvent(const RotateEvent& event) override

功能说明

  • 核心用途:处理旋转进行中事件
  • 重写自基类的旋转事件处理函数
  • 返回 true 表示事件已消费,false 表示未消费

前置条件

  • 需启用 ENABLE_ROTATE_INPUT 宏配置
  • 旋转事件已开始(OnRotateStartEvent 已调用)

入参

名称 参数类型 详细说明 约束取值范围
event const RotateEvent& 入参只读引用,旋转事件数据 有效的 RotateEvent 对象

返回值

  • 返回类型:bool

返回事件消费状态

返回值 触发场景
true 旋转事件已消费
false 旋转事件未消费

Kconfig 配置

配置项 说明 默认值
ENABLE_ROTATE_INPUT 启用旋转输入功能 n

OnRotateEndEvent

bool OnRotateEndEvent(const RotateEvent& event) override

功能说明

  • 核心用途:处理旋转结束事件
  • 重写自基类的旋转事件处理函数
  • 返回 true 表示事件已消费,false 表示未消费

前置条件

  • 需启用 ENABLE_ROTATE_INPUT 宏配置
  • 旋转事件已开始(OnRotateStartEvent 已调用)

入参

名称 参数类型 详细说明 约束取值范围
event const RotateEvent& 入参只读引用,旋转事件数据 有效的 RotateEvent 对象

返回值

  • 返回类型:bool

返回事件消费状态

返回值 触发场景
true 旋转结束事件已消费
false 旋转结束事件未消费

Kconfig 配置

配置项 说明 默认值
ENABLE_ROTATE_INPUT 启用旋转输入功能 n

SetXScrollBarVisible

void SetXScrollBarVisible(bool visible)

功能说明

  • 核心用途:设置水平滚动条的可见性
  • true 表示显示水平滚动条,false 表示隐藏
  • 默认值为 false

入参

名称 参数类型 详细说明 约束取值范围
visible bool 水平滚动条是否可见 true / false

SetYScrollBarVisible

void SetYScrollBarVisible(bool visible)

功能说明

  • 核心用途:设置垂直滚动条的可见性
  • true 表示显示垂直滚动条,false 表示隐藏
  • 默认值为 false

入参

名称 参数类型 详细说明 约束取值范围
visible bool 垂直滚动条是否可见 true / false

SetScrollBarSide

void SetScrollBarSide(uint8_t side)

功能说明

  • 核心用途:设置滚动条的位置
  • side 值决定滚动条显示在视图的哪一侧
  • 默认值由内部成员 scrollBarSide_ 决定

入参

名称 参数类型 详细说明 约束取值范围
side uint8_t 滚动条位置 0 ~ 255

GetScrollBarSide

uint8_t GetScrollBarSide()

功能说明

  • 核心用途:获取滚动条的位置
  • 返回当前滚动条的位置值

返回值

  • 返回类型:uint8_t

返回滚动条位置

返回值 触发场景
当前值 当前滚动条位置

SetScrollBarCenter

void SetScrollBarCenter(const Point& center)

功能说明

  • 核心用途:设置滚动条的中心点位置
  • 设置中心点后,滚动条将以该点为中心绘制
  • 调用此函数会同时设置 scrollBarCenterSetFlag_ 标志为 true

入参

名称 参数类型 详细说明 约束取值范围
center const Point& 入参只读引用,滚动条中心点坐标 有效的 Point 对象

GetScrollBarCenter

Point GetScrollBarCenter()

功能说明

  • 核心用途:获取滚动条的中心点位置
  • 返回当前滚动条中心点的坐标

返回值

  • 返回类型:Point

返回滚动条中心点坐标

返回值 触发场景
Point 当前滚动条中心点坐标

SetDirection

void SetDirection(uint8_t direction)

功能说明

  • 核心用途:设置列表的滚动方向
  • HORIZONTAL(0) 表示水平方向,VERTICAL(1) 表示垂直方向
  • 默认方向由内部成员 direction_ 决定

入参

名称 参数类型 详细说明 约束取值范围
direction uint8_t 滚动方向 HORIZONTAL(0) / VERTICAL(1)

GetDirection

uint8_t GetDirection() const

功能说明

  • 核心用途:获取列表的滚动方向
  • 返回 HORIZONTAL(0) 或 VERTICAL(1)
  • 该函数为 const 成员函数,不修改对象状态

返回值

  • 返回类型:uint8_t

返回滚动方向

返回值 触发场景
0 (HORIZONTAL) 水平方向滚动
1 (VERTICAL) 垂直方向滚动

OnPostDraw

void OnPostDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) override

功能说明

  • 核心用途:在视图绘制完成后执行后置绘制操作
  • 重写自基类的后置绘制回调函数
  • 用于绘制滚动条等需要在子视图之上显示的元素

入参

名称 参数类型 详细说明 约束取值范围
gfxDstBuffer BufferInfo& 出参引用,图形目标缓冲区 有效的 BufferInfo 对象
invalidatedArea const Rect& 入参只读引用,需要重绘的区域 有效的 Rect 对象

GetScrollState

uint8_t GetScrollState()

功能说明

  • 核心用途:获取滚动动画的当前状态
  • 返回值来自内部 scrollAnimator_ 的状态
  • 用于判断滚动动画是否正在执行

返回值

  • 返回类型:uint8_t

返回滚动动画状态

返回值 触发场景
动画状态值 当前滚动动画的状态

Type definitions

EasingFunc

typedef int16_t (*EasingFunc)(int16_t startPos, int16_t endPos, uint16_t curTime, uint16_t durationTime);

使用说明:作为 SetDragFunc / GetDragFunc 接口的参数和返回类型,用于定义滚动动画的缓动函数

Enumerations

UIAbstractScroll::Direction

enum class Direction {
    ALL,
    TOP,
    BOTTOM,
    LEFT,
    RIGHT,
};
枚举成员 取值 描述
ALL 0 所有方向
TOP 1 顶部方向
BOTTOM 2 底部方向
LEFT 3 左侧方向
RIGHT 4 右侧方向