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

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

HarmonyOS
8天前
浏览
收藏 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
微信
回复
8天前
相关问题
如何实现顶部渐变遮罩效果
270浏览 • 1回复 待解决
栅格布局怎么实现滚动效果
226浏览 • 0回复 待解决
是否可以实现滚动锚定的效果
618浏览 • 1回复 待解决
List组件如何设置两端的渐变效果
1759浏览 • 1回复 待解决
DataPanel如何实现颜色的渐变
227浏览 • 1回复 待解决
组件如何实现渐变色?
1862浏览 • 1回复 待解决
如何实现渐变的圆角边框
2259浏览 • 1回复 待解决
HarmonyOS如何实现文字轮播效果
201浏览 • 1回复 待解决
HarmonyOS 如何实现阴影边框效果
89浏览 • 1回复 待解决
如何实现嵌套滚动技术
803浏览 • 1回复 待解决
如何实现组件边缘的颜色渐变
1746浏览 • 1回复 待解决
HarmonyOS 如何实现文字描边效果
83浏览 • 0回复 待解决
自适应页面滚动如何实现
223浏览 • 1回复 待解决