ui_repeat_button
ui_repeat_button 模块提供重复按钮组件,支持长按时持续触发点击事件。
Class Summary
OHOS::UIRepeatButton
重复按钮控件,长按状态下持续触发点击事件
- 构造:无
-
成员函数:
接口名称 功能简述 GetViewType 获取控件类型 SetInterval 设置连续点击事件的时间间隔 GetInterval 获取连续点击事件的时间间隔 OnClickEvent 处理点击事件 OnReleaseEvent 处理释放事件 OnLongPressEvent 处理长按事件 HandleTickEvent 处理长按状态下的周期性触发事件 -
使用包含头文件:
#include "components/ui_repeat_button.h" - 声明头文件:
middleware/services/gui/uikit/ui/interfaces/kits/components/ui_repeat_button.h - 公有运算符:无
- 继承关系:UIButton
- 嵌套类型:无
- 模板形参:无
Functions
OHOS::UIRepeatButton
GetViewType
UIViewType GetViewType() const override
功能说明
- 核心用途:获取当前控件的类型标识
- 返回类型为
UIViewType枚举中的UI_REPEAT_BUTTON,用于区分该控件与其他 UI 控件类型 - 该函数为
const成员函数,不修改对象状态
返回值
- 返回类型:
UIViewType
返回控件的类型标识
| 返回值 | 触发场景 |
|---|---|
| UI_REPEAT_BUTTON | 当前控件为重复按钮类型 |
SetInterval
virtual void SetInterval(uint16_t interval)
功能说明
- 核心用途:设置长按状态下连续两次点击事件之间的时间间隔
- 设计目的:控制重复触发频率,间隔值越小触发越频繁
- 使用场景:需要在长按时以指定频率持续触发点击事件的业务场景
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| interval | uint16_t | 连续两次点击事件之间的时间间隔,单位为 tick | 0 ~ 65535 |
GetInterval
virtual uint16_t GetInterval() const
功能说明
- 核心用途:获取当前设置的连续两次点击事件之间的时间间隔
- 该函数为
const成员函数,不修改对象状态 - 返回值与
SetInterval设置的值一致
返回值
- 返回类型:
uint16_t
返回连续点击事件的时间间隔
| 返回值 | 触发场景 |
|---|---|
| uint16_t 值 | 返回当前设置的间隔值,单位为 tick |
OnClickEvent
virtual bool OnClickEvent(const ClickEvent& event) override
功能说明
- 核心用途:处理点击事件,在按钮被点击时触发
- 设计目的:重写基类的点击事件处理,实现重复按钮的点击行为
- 使用场景:按钮被点击时由事件分发机制调用,记录点击事件信息
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| event | const ClickEvent& | 入参只读引用,点击事件对象,包含点击位置等事件信息 | 有效的 ClickEvent 对象 |
返回值
- 返回类型:
bool
返回事件是否被消费
| 返回值 | 触发场景 |
|---|---|
| true(1) | 点击事件已被消费 |
| false(0) | 点击事件未被消费 |
OnReleaseEvent
virtual bool OnReleaseEvent(const ReleaseEvent& event) override
功能说明
- 核心用途:处理释放事件,在按钮被释放时触发
- 设计目的:重写基类的释放事件处理,停止重复触发并清理状态
- 使用场景:按钮被释放时由事件分发机制调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| event | const ReleaseEvent& | 入参只读引用,释放事件对象,包含释放位置等事件信息 | 有效的 ReleaseEvent 对象 |
返回值
- 返回类型:
bool
返回事件是否被消费
| 返回值 | 触发场景 |
|---|---|
| true(1) | 释放事件已被消费 |
| false(0) | 释放事件未被消费 |
OnLongPressEvent
virtual bool OnLongPressEvent(const LongPressEvent& event) override
功能说明
- 核心用途:处理长按事件,在按钮被长按时触发
- 设计目的:重写基类的长按事件处理,启动重复触发定时器
- 使用场景:按钮被长按时由事件分发机制调用,进入持续触发模式
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| event | const LongPressEvent& | 入参只读引用,长按事件对象,包含长按位置等事件信息 | 有效的 LongPressEvent 对象 |
返回值
- 返回类型:
bool
返回事件是否被消费
| 返回值 | 触发场景 |
|---|---|
| true(1) | 长按事件已被消费 |
| false(0) | 长按事件未被消费 |
HandleTickEvent
void HandleTickEvent()
功能说明
- 核心用途:处理长按状态下的周期性触发事件
- 设计目的:在长按持续期间按
SetInterval设定的间隔周期性触发点击事件 - 使用场景:由定时器在长按状态下周期性调用,实现重复点击效果