HarmonyOS Scroll监听

怎么监听Scroll向上滑动了50.0vp,100.0vp,150.0vp,分别让Scroll内部的指定Row容器背景色分别进行色值变化设置

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

可以用this.scroller.currentOffset().yOffset作为滑动距离的标准,用onScrollFrameBegin回调进行监听

// xxx.ets
@Entry
@Component
struct ScrollExample {
  scroller: Scroller = new Scroller()
  private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  @State bgColor:string = '#FFF';

  build() {
    Stack({ alignContent: Alignment.TopStart }) {
      Scroll(this.scroller) {
        Column() {
          ForEach(this.arr, (item: number) => {
            Text(item.toString())
              .width('90%')
              .height(150)
              .backgroundColor(0xFFFFFF)
              .borderRadius(15)
              .fontSize(16)
              .textAlign(TextAlign.Center)
              .margin({ top: 10 })
              .backgroundColor(this.bgColor)
          }, (item: string) => item)
        }.width('100%')
      }
      .scrollable(ScrollDirection.Vertical) // 滚动方向纵向
      .scrollBar(BarState.On) // 滚动条常驻显示
      .scrollBarColor(Color.Gray) // 滚动条颜色
      .scrollBarWidth(10) // 滚动条宽度
      .friction(0.6)
      .edgeEffect(EdgeEffect.Spring)
      .onWillScroll((xOffset: number, yOffset: number, scrollState: ScrollState) => {
        // console.info(xOffset + ' ' + yOffset)
      })
      .onScrollEdge((side: Edge) => {
        // console.info(JSON.stringify(side))
      })
      .onScrollStop(() => {
        // console.info('Scroll Stop')
      })
      .onScrollFrameBegin((offset: number)=>{
        if(this.scroller.currentOffset().yOffset>0){
          this.bgColor = '#FFF'
        }
        if(this.scroller.currentOffset().yOffset>150){
          this.bgColor = '#999'
        }
        if(this.scroller.currentOffset().yOffset>300){
          this.bgColor = '#333'
        }
        return { offsetRemain: offset };
      })
    }.width('100%').height('100%').backgroundColor(0xDCDCDC)
  }
}
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS Scroll使用问题
32浏览 • 1回复 待解决
HarmonyOS Scroll组件无法滑动
474浏览 • 1回复 待解决
HarmonyOS scroll滑动问题
484浏览 • 1回复 待解决
HarmonyOS Scroll组件使用问题
446浏览 • 1回复 待解决
HarmonyOS Scroll嵌套RelativeContainer 问题
356浏览 • 1回复 待解决
HarmonyOS scroll组件问题
80浏览 • 1回复 待解决
HarmonyOS Scroll布局相关
31浏览 • 1回复 待解决
HarmonyOS CustomDialogController套用Scroll
254浏览 • 1回复 待解决
HarmonyOS 使用scroll组件效果异常
42浏览 • 1回复 待解决
HarmonyOS scroll的高度设置问题
1006浏览 • 1回复 待解决
HarmonyOS Scroll组件滚动问题
629浏览 • 1回复 待解决
HarmonyOS Scroll嵌套web手势冲突
14浏览 • 1回复 待解决
HarmonyOS list web scroll 联动
27浏览 • 1回复 待解决
HarmonyOS Scroll组件滚动控制
94浏览 • 1回复 待解决
HarmonyOS Scroll 嵌套 RelativeContainer 问题
522浏览 • 1回复 待解决
HarmonyOS scroll滚动问题
44浏览 • 1回复 待解决
HarmonyOS 音量监听可以取消监听
37浏览 • 1回复 待解决