HarmonyOS NEXT练习:跑马灯

Marquee跑马灯组件,用于滚动展示一段单行文本。仅当文本内容宽度超过跑马灯组件宽度时滚动,不超过时不滚动。

接口

typescript 复制代码
Marquee(value: { start: boolean, step?: number, loop?: number, fromStart?: boolean, src: string })

value:配置跑马灯组件的参数。

  • start:控制跑马灯是否进入播放状态。
  • step:滚动动画文本滚动步长,当step大于Marquee的文本宽度时,取默认值。默认值:6,单位vp
  • loop:设置重复滚动的次数,小于等于零时无限循环。默认值:-1
  • fromStart:设置文本从头开始滚动或反向滚动。默认值:true
  • src:需要滚动的文本。

组件属性:

typescript 复制代码
.fontColor(value: ResourceColor) //设置字体颜色。
.fontSize(value: Length) //设置字体大小。
.fontWeight(value: number | FontWeight | string) //设置文本的字体粗细,设置过大可能会在不同字体下有截断。默认值:FontWeight.Normal
.fontFamily(value: string | Resource) //设置字体列表。默认字体'HarmonyOS Sans'。
.allowScale(value: boolean) //设置是否允许文本缩放。默认值:false
.marqueeUpdateStrategy(value: MarqueeUpdateStrategy) //跑马灯组件属性更新后,跑马灯的滚动策略。(当跑马灯为播放状态,且文本内容宽度超过跑马灯组件宽度时,该属性生效)。默认值: MarqueeUpdateStrategy.DEFAULT

组件事件:

typescript 复制代码
.onStart(event: () => void) //当滚动的文本内容变化或者开始滚动时触发回调。
.onBounce(event: () => void) //完成一次滚动时触发,若循环次数不为1,则该事件会多次触发。
.onFinish(event: () => void) //滚动全部循环次数完成时触发回调。

跑马灯练习Demo:

typescript 复制代码
@Entry
@Component
struct MarqueePage {
  @State start: boolean = true;
  @State marqueeText: string = '跑马灯练习:当文字超出一屏幕宽时,通过跑马灯滚动展示文字...';
  private fromStart: boolean = true;
  private step: number = 10;
  private loop: number = Number.POSITIVE_INFINITY;

  build() {
    Column({ space: 20 }) {
      Text('跑马灯练习')
      Marquee({
        start: this.start,
        step: this.step,
        loop: this.loop,
        fromStart: this.fromStart,
        src: this.marqueeText
      })
        .marqueeUpdateStrategy(MarqueeUpdateStrategy.PRESERVE_POSITION)
        .width('100%')
        .height('80')
        .fontColor('#FFFFFF')
        .fontSize('48fp')
        .fontWeight(700)
        .backgroundColor('#182431')
        .margin({ bottom: '40vp' })
        .onStart(() => {
          console.info('Succeeded in completing the onStart callback of marquee animation');
        })
        .onBounce(() => {
          console.info('Succeeded in completing the onBounce callback of marquee animation');
        })
        .onFinish(() => {
          console.info('Succeeded in completing the onFinish callback of marquee animation');
        })
    }
    .width('100%')
    .height('100%')
  }
}
相关推荐
lxysbly2 小时前
鸿蒙gba模拟器app下载
华为·harmonyos
左手厨刀右手茼蒿3 小时前
Flutter 三方库 firebase_admin 跨云边管线企业级鸿蒙管控底座适配风云:无障碍贯穿服务器授权防火墙打通底层生态授权域并构建海量设备推送集结-适配鸿蒙 HarmonyOS ohos
服务器·flutter·harmonyos
钛态3 小时前
Flutter for OpenHarmony:shelf_web_socket 快速构建 WebSocket 服务端,实现端到端实时通信(WebSocket 服务器) 深度解析与鸿蒙适配指南
服务器·前端·websocket·flutter·华为·性能优化·harmonyos
亚历克斯神3 小时前
Flutter 三方库 at_server_status 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、透明、实时的 @protocol 去中心化身份服务器状态感知与鉴权监控引擎
flutter·华为·harmonyos
木易 士心4 小时前
TypeScript 与 ArkTS 全面对比:鸿蒙生态下的语言演进
typescript·harmonyos
XHW___0014 小时前
鸿蒙音频通话应用后台保活与音频连续播放方案
华为·音视频·harmonyos
zzialx5 小时前
HarmonyOS:照片添加多样式的水印信息
华为·harmonyos
左手厨刀右手茼蒿6 小时前
Flutter 三方库 k_m_logic 的鸿蒙化适配指南 - 构建声明式的业务逻辑状态机、助力鸿蒙端复杂交互流程的解耦与重构
flutter·harmonyos·鸿蒙·openharmony·k_m_logic
钛态6 小时前
Flutter 三方库 result_type 深入鸿蒙强类型返回栈跨界交互适配:肃清空指针回调与运行时崩溃、大幅增注接口安全壁垒且提升多隔离桥接数据抛出健壮性-适配鸿蒙 HarmonyOS ohos
flutter·交互·harmonyos