HarmonyOS 如何实现滚动渐变效果?

HarmonyOS  如何实现滚动渐变效果?

HarmonyOS
2024-09-27 11:51:25
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

可以在list组件的scroll回调中使用currentOffset获取当前Y轴偏移量并设置上方横条的透明度,参考demo:

@Entry  
@Component  
struct Page1 {  
  @State tabOpacity:number = 0  
  private scrollerForScroll: Scroller = new Scroller()  
  
  build() {  
    Column(){  
      Stack(){  
  
        List({ scroller: this.scrollerForScroll }) {  
          ListItem()  
            .height('20%')  
            .width('90%')  
            .backgroundColor(Color.Green)  
            .margin({top:70})  
  
          ListItem()  
            .height('30%')  
            .width('90%')  
            .backgroundColor(Color.Blue)  
            .margin({top:20})  
  
          ListItem()  
            .height('10%')  
            .width('90%')  
            .backgroundColor(Color.Red)  
            .margin({top:20})  
  
          ListItem()  
            .height('30%')  
            .width('90%')  
            .backgroundColor(Color.Blue)  
            .margin({top:20})  
  
          ListItem()  
            .height('30%')  
            .width('90%')  
            .backgroundColor(Color.Brown)  
            .margin({top:20})  
  
        }  
        .onScroll(() => {  
          let yOffset = this.scrollerForScroll.currentOffset().yOffset  
  
          if(yOffset < 100){  
            this.tabOpacity = yOffset*0.01  
          }  
        })  
        .scrollBar(BarState.Off)  
        .alignListItem(ListItemAlign.Center)  
        .backgroundColor(Color.Gray)  
        .width('100%')  
  
        Stack(){  
          Column(){  
          }  
          .backgroundColor(Color.Blue)  
          .opacity(this.tabOpacity)  
          .height('100%')  
          .width('100%')  
  
          Text('tabbar')  
            .fontSize(40)  
        }  
        .width('100%')  
        .height('50')  
        .alignContent(Alignment.Center)  
      }  
      .alignContent(Alignment.TopStart)  
    }  
    .width("100%")  
  }  
}
分享
微博
QQ
微信
回复
2024-09-27 17:17:13
相关问题
HarmonyOS 渐变遮罩效果如何实现
229浏览 • 1回复 待解决
HarmonyOS 如何实现文字渐变效果
33浏览 • 1回复 待解决
如何实现顶部渐变遮罩效果
514浏览 • 1回复 待解决
栅格布局怎么实现滚动效果
455浏览 • 0回复 待解决
是否可以实现滚动锚定的效果
832浏览 • 1回复 待解决
HarmonyOS 有没有类似于渐变效果
35浏览 • 1回复 待解决
HarmonyOS Canvas设置渐变色没有效果
47浏览 • 1回复 待解决
DataPanel如何实现颜色的渐变
558浏览 • 1回复 待解决
组件如何实现渐变色?
2077浏览 • 1回复 待解决
如何实现渐变的圆角边框
2540浏览 • 1回复 待解决