龙空技术网

鸿蒙开发(一百):List 滚动到指定位置

程序员小宋同学 58

前言:

现在小伙伴们对“滚动条滚动到指定位置”大约比较着重,小伙伴们都想要了解一些“滚动条滚动到指定位置”的相关资讯。那么小编在网摘上搜集了一些有关“滚动条滚动到指定位置””的相关知识,希望咱们能喜欢,我们一起来了解一下吧!

在 Scroller 里,通过 scrollToIndex 可以控制 List 滚动到指定位置。

declare class Scroller {    /**     * 滚动到指定位置     */    scrollToIndex(value: number);}
value:位置(索引)

接下来,写一个滚动到指定位置的示例。

首先,定义数据源并初始化。

@Entry@Componentstruct Index {  /**   * 数据源   */  names: string[] = []  aboutToAppear() {    // 填充数据    for (let i = 0; i < 50; i++) {      this.names.push(`数据${i}`)    }  }}

然后,给 List 设置 Scroller。

@Entry@Componentstruct Index {  /**   * 数据源   */  names: string[] = []  /**   * 滚动控制器   */  scroller: Scroller = new Scroller()  aboutToAppear() {    // 填充数据    for (let i = 0; i < 50; i++) {      this.names.push(`数据${i}`)    }  }  build() {    List({ scroller: this.scroller }) {    }    .width('100%')    .height('100%')  }}

最后,渲染数据,并给 ListItem 添加点击事件,在点击事件里调用 scrollToIndex 滚动到指定位置。

@Entry@Componentstruct Index {  /**   * 数据源   */  names: string[] = []  /**   * 滚动控制器   */  scroller: Scroller = new Scroller()  aboutToAppear() {    // 填充数据    for (let i = 0; i < 50; i++) {      this.names.push(`数据${i}`)    }  }  build() {    List({ scroller: this.scroller }) {      ForEach(this.names, (item: string, index: number) => {        ListItem() {          Row() {            Text(item)              .fontSize(30)          }          .width('100%')          .height(100)          .backgroundColor(index % 2 === 0 ? Color.Gray : Color.White)        }        .onClick(() => {          this.scroller.scrollToIndex(30)        })      }, (item: string) => item)    }    .width('100%')    .height('100%')  }}

运行结果:

从运行结果来看,当点击 ListItem 时,列表滚动到 Index 为 30 的位置。

标签: #滚动条滚动到指定位置