【HarmonyOS】骨架屏(数据请求回来之前使用组件生成骨架屏,数据回来以后【骨架屏】消失)不会让页面白屏显示空

#骨架屏作用用途

骨架屏用途就是防止用户焦虑(为了迷惑用户)

#效果图

#思路:

#步骤:

1.首先是封装一个骨架 (所使用的思路就是利用 linearGradient + translate + animation + onAppear 实现骨架的闪光效果)

2.在其他页面进行调用(数据请求回来之前使用:思路就是Foreach+封装生成的骨架屏,数据回来以后骨架屏消失)

#单个骨架组件封装(代码如下)

封装最好的目的是为了在任何页面都可以调用!

##IvSkeleton.ets
@Entry
@Component
export struct IvSkeleton {
  @State translageX: string = '-100%' // 定义闪电效果的位置
  widthValue: number = 100
  heightValue: number = 28

  build() {
    Stack() {
      // 背景效果
      Text()
        .width(this.widthValue)
        .height(this.heightValue)
        .backgroundColor('rgba(0,0,0,0.5)')

      // 闪电效果
      Text()
        .width(this.widthValue)
        .height(this.heightValue)
        .translate({ x: this.translageX })  // 控制闪电位置
        .onAppear(() => {
          // 当组件加载后,触发此函数,将translate的x轴位置改变到100%
          this.translageX = '100%'
        })
        .animation({
          duration: 1500, // 1.5秒内完成闪电动画
          iterations: -1  // 无限闪动动画
        })
        .linearGradient({ // 闪电效果
          angle: 90,
          colors: [
            ['rgba(255,255,255,0)', 0],
            ['rgba(255,255,255,1)', 0.5],
            ['rgba(255,255,255,0)', 1]
          ]
        })

    }
  }
}
##在其
他页面调用:

##HomeCategoryComp.ets
import { IvSkeleton } from '../../components/IvSkeleton'
@Component
export struct HomeCategoryComp {
build() {
  if(this.questionTypeList.length==0){
    ForEach(Array.from({length:10}),()=>{
      Row({space:10}){
        IvSkeleton({widthValue:50,heightValue:50})
        IvSkeleton({widthValue:200,heightValue:50})
      }
      .padding({top:10})
    })
  }else{
//返回的数据
        }
       }
  }
}

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郝晨妤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值