HarmonyOS List组件默认滚动到最底部

现在有一个List里面用了DataSource,界面刚创建的时候并不知道有多少条数据,无法直接指定他滚动的Index。是否有属性能够让初始状态滚动到列表最底部?

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

可设置属性scrollToIndex,参考示例如下:

@Entry
@Component
struct ListExample {
  private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  private scroller: ListScroller = new ListScroller()

  build() {
    Column() {
      List({ space: 20, initialIndex: 0, scroller: this.scroller }) {
        ForEach(this.arr, (item: number) => {
          ListItem() {
            Text('' + item)
              .width('100%')
              .height(100)
              .fontSize(16)
              .textAlign(TextAlign.Center)
              .borderRadius(10)
              .backgroundColor(0xFFFFFF)
          }
        }, (item: string) => item)
      }
      .listDirection(Axis.Vertical) // 排列方向
      .scrollBar(BarState.Off)
      .friction(0.6)
      .divider({
        strokeWidth: 2,
        color: 0xFFFFFF,
        startMargin: 20,
        endMargin: 20
      }) // 每行之间的分界线
      .edgeEffect(EdgeEffect.Spring) // 边缘效果设置为Spring
      .onScrollIndex((firstIndex: number, lastIndex: number, centerIndex: number) => {
        console.info('first' + firstIndex)
        console.info('last' + lastIndex)
        console.info('center' + centerIndex)
      })
      .width('90%')
      //加载完数据之后调用this.scroller.scrollToIndex(this.arr.length - 1,true)就行了
      //button只是模拟数据加载完毕后调用该方法
      Button() {
        Text('滑动到底部')
      }
      .width(100)
      .height(100)
      .onClick(() => {
        this.scroller.scrollToIndex(this.arr.length - 1, true)
      })
    }
    .width('100%')
    .height('90%')
    .backgroundColor(0xDCDCDC)
    .padding({ top: 5 })
  }
}
分享
微博
QQ
微信
回复
2天前
相关问题
list组件无法滚动到底部
1406浏览 • 1回复 待解决
监听pdf是否已经滑动到底部失败
1758浏览 • 1回复 待解决
HarmonyOS List列表滚动到指定位置
156浏览 • 1回复 待解决
HarmonyOS list如何动态滚动到指定位置
138浏览 • 1回复 待解决
HarmonyOS List组件滚动监听
144浏览 • 1回复 待解决
Web组件怎么知道滚动到顶部了
921浏览 • 1回复 待解决
HarmonyOS list组件点击后,滚动居中
127浏览 • 1回复 待解决
如何获取List组件滚动滚动的距离
2709浏览 • 1回复 待解决