TextTimer

说明:

当前为Beta阶段。

通过文本显示计时信息并控制其计时器状态的组件。

在组件不可见时时间变动将停止,组件的可见状态基于onVisibleAreaChange处理,可见阈值ratios大于0即视为可见状态。

导入模块

import kit.ArkUI.*

子组件

创建组件

init(?Bool, ?Int64, ?TextTimerController)

public init(isCountDown!: ?Bool = None, count!: ?Int64 = None,
    controller!: ?TextTimerController = None)

功能: 创建一个包含倒计时设置、计时时间和控制器的TextTimer对象。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
isCountDown ?Bool None 命名参数。 是否倒计时。
初始值:false。
count ?Int64 None 命名参数。 计时器时间(isCountDown为true时生效),单位为毫秒。
初始值:60000。
controller ?TextTimerController None 命名参数。 TextTimer控制器。

通用属性/通用事件

通用属性:全部支持。

通用事件:全部支持。

组件属性

func fontColor(?ResourceColor)

public func fontColor(value: ?ResourceColor): This

功能: 设置字体颜色。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?ResourceColor - 字体颜色。

func fontFamily(?ResourceStr)

public func fontFamily(value: ?ResourceStr): This

功能: 设置字体列表。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?ResourceStr - 字体列表。
初始字体:'HarmonyOS Sans'。
初始值:"HarmonyOS Sans"。

func fontSize(?Length)

public func fontSize(value: ?Length): This

功能: 设置字体大小。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?Length - 字体大小。初始值:16.0.fp。

func fontStyle(?FontStyle)

public func fontStyle(value: ?FontStyle): This

功能: 设置字体样式。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?FontStyle - 字体样式。
初始值:FontStyle.Normal。

func fontWeight(?FontWeight)

public func fontWeight(value: ?FontWeight): This

功能: 设置字体粗细。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?FontWeight - 字体粗细。初始值:FontWeight.Normal

func format(?String)

public func format(value: ?String): This

功能: 设置自定义格式。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?String - 自定义格式。
默认值:'HH:mm:ss.SS'。
初始值:"HH:mm:ss.SS"。

func textShadow(?Array<ShadowOptions>)

public func textShadow(value: ?Array<ShadowOptions>): This

功能: 设置文本阴影。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?Array<ShadowOptions> - 阴影选项数组。

func textShadow(?ShadowOptions)

public func textShadow(value: ?ShadowOptions): This

功能: 设置文本阴影。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?ShadowOptions - 阴影选项。

组件事件

func onTimer(?(Int64, Int64) -> Unit)

public func onTimer(event: ?(Int64, Int64) -> Unit): This

功能: 时间文本变化时触发该回调。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
event ?(Int64, Int64) -> Unit - 时间文本变化时的回调函数。初始值: { _, _ => }。

基础类型定义

class TextTimerController

public class TextTimerController {
    public init()
}

功能: TextTimerController是TextTimer组件的控制器,可以定义该类型的对象并绑定至TextTimer组件,实现对TextTimer组件的控制。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init()

public init()

功能: TextTimerController的构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

func pause()

public func pause(): Unit

功能: 提供计时器的暂停事件。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

func reset()

public func reset(): Unit

功能: 提供重置计时器的事件。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

func start()

public func start(): Unit

功能: 提供计时器的启动事件。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

示例代码

示例1 (支持手动启停的文本计时器)

该示例展示了TextTimer组件的基本使用方法,通过format属性设置计时器的文本显示格式。

用户可以通过点击"start"、"pause"、"reset"按钮,开启、暂停、重置计时器。

package ohos_app_cangjie_entry

import kit.ArkUI.*
import ohos.hilog.*
import ohos.arkui.state_macro_manage.*

@Entry
@Component
class EntryView {
    var textTimerController: TextTimerController = TextTimerController()
    @State
    var format: String = 'mm:ss.SS'
    func build() {
        Column {
            TextTimer(isCountDown: true, count: 30000, controller: this.textTimerController)
                .format(this.format)
                .fontColor(Color.Black)
                .fontSize(50)
                .onTimer({
                    utc, elapsedTime => Hilog.info(0, "AppLogCj", "time has been changed")
                })
            Row() {
                Button("start").onClick({ evt =>
                  this.textTimerController.start()
                })
                Button("pause").onClick({ evt =>
                  this.textTimerController.pause()
                })
                Button("reset").onClick({ evt =>
                    this.textTimerController.reset()
                })
            }
        }
    }
}

texttimer

示例2(设定文本阴影样式)

该示例通过textShadow属性设置计时器的文本阴影样式。

package ohos_app_cangjie_entry

import kit.ArkUI.*
import ohos.arkui.state_macro_manage.*

@Entry
@Component
class EntryView {
    @State
    var textShadows: Array<ShadowOptions> = [
        ShadowOptions(
            radius: 10.0,
            color: Color.Red,
            offsetX: 10.0,
            offsetY: 0.0
        ),
        ShadowOptions(
            radius: 10.0,
            color: Color.Black,
            offsetX: 20.0,
            offsetY: 0.0
        ),
        ShadowOptions(
            radius: 10.0,
            color: Color.Gray,
            offsetX: 30.0,
            offsetY: 0.0
        ),
        ShadowOptions(
            radius: 10.0,
            color: Color.Green,
            offsetX: 40.0,
            offsetY: 0.0
        ),
        ShadowOptions(
            radius: 10.0,
            color: Color.Blue,
            offsetX: 100.0,
            offsetY: 0.0
        )
    ]
    func build() {
        Column(space: 8) {
            TextTimer()
                .fontSize(50)
                .textShadow(this.textShadows)
        }
    }
}

texttimer

示例3(创建之后立即执行计时)

该示例展示了TextTimer计时器如何在创建完成之后立即开始计时。

package ohos_app_cangjie_entry

import kit.ArkUI.*
import ohos.hilog.*
import ohos.arkui.state_macro_manage.*

@Entry
@Component
class EntryView {
    var textTimerController: TextTimerController = TextTimerController()
    @State
    var format: String = 'mm:ss.SS'

    func build() {
        Column(space: 8) {
            Scroll().height(20.percent)
            Button("openTextTimer").onClick({
                evt =>
            })
            TextTimer(isCountDown: true, count: 30000, controller: this.textTimerController)
                .format(this.format)
                .fontColor(Color.Black)
                .fontSize(50)
                .onTimer({
                    utc: Int64, elapsedTime: Int64 =>
                        Hilog.info(0, "AppLogCj", 'textTimer notCountDown utc is:${utc.toString()}, elapsedTime: ${elapsedTime.toString()}')
                })
                .onAppear({ =>
                    this.textTimerController.start()
                })
        }
    }
}

texttimer