HarmonyOS鸿蒙Next中Marquee组件何时能支持滚动间隔呢

HarmonyOS鸿蒙Next中Marquee组件何时能支持滚动间隔呢 Marquee中的文字会一直滚动,不会像Android中滚动完一次之后在起始位置停留一会

3 回复

【解决方案】

描述所提场景可以使用Text组件来实现,当前Marquee组件还无法做到描述中的场景。

Text组件实现思路如下:

1.Text显示所需文本内容,注意文本内容需要超过Text组件的width;

2.Text设置属性:marqueeOptions,监听onMarqueeStateChange,在onMarqueeStateChange方法中更改marqueeOptions的start参数,之后设置定时器再重置start参数

示例代码如下:

@Entry
@Component
struct Page {

  @State textState :MarqueeState= MarqueeState.START;
  @State start: boolean = false;
  @State src: string = '';
  @State marqueeText: string = 'Running Marquee';
  private loop: number = Number.POSITIVE_INFINITY;
  build() {
    Column() {
      Text("test")
      Text(this.marqueeText + this.src).marqueeOptions({
        start:this.start,
        loop:this.loop,
      }).width('300vp').backgroundColor('#182431')
        .fontColor('#FFFFFF')
        .fontSize('48fp')
        .textOverflow({
          overflow: TextOverflow.MARQUEE
        }).onMarqueeStateChange((state)=>{
        if(!state)return;
        this.start = false;
        this.textState =state;
        setTimeout(()=>{
          this.start = true;
        },3000)
      })
    }
    .border({width:2,color:"#0000ff"})
    .height('100%')
    .width('100%')
  }
}

更多关于HarmonyOS鸿蒙Next中Marquee组件何时能支持滚动间隔呢的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


鸿蒙Next中Marquee组件目前不支持滚动间隔参数。该组件当前仅提供滚动方向和速度控制,滚动间隔功能尚未在官方API中提供。

目前HarmonyOS Next中的Marquee组件确实暂不支持自定义滚动间隔或停留时间。该组件目前设计为连续滚动模式,与Android Marquee的默认行为存在差异。

若需实现滚动-停留间隔效果,建议通过自定义组件实现。可考虑以下方案:

  1. 使用Text组件结合动画模块(@ohos.animator)实现
  2. 通过定时器控制文本位置与可见性来模拟停留效果
  3. 结合Scroll组件与动画关键帧实现可控的滚动时序

这种设计差异主要是由于HarmonyOS Next在不同设备类型(手机、平板、车机等)上需要保持一致的滚动体验和性能表现。后续版本可能会增强该组件的可配置性,建议关注官方API文档更新。

回到顶部