#鸿蒙通关秘籍#如何在HarmonyOS Next中自定义Stepper组件?

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

使用Swiper组件可以有效地实现自定义Stepper。在项目中,通过SwiperItem来承载每个步骤的内容,并使用SwiperController控制步骤切换,而非使用Swiper的原生滑动功能,允许自定义按钮的样式和位置。防止滑动切换后使用代码导航,确保每个步骤的数据填写完整,才能继续下一步。以下是实现代码:

// HeaderView用于显示页面标题和返回按钮,内容固定
HeaderView({ titleArray: this.pageTitleArray, currentIndex: this.currentIndex })

// 使用Swiper承载步骤内容,Item禁用掉滑动切换,使用Controller切换
Swiper(this.controller) {
  UserNoticeView()
  CategoryView()
  TableView()
}
.layoutWeight(1)
.duration(0)
.cachedCount(1)
.disableSwipe(true)
.backgroundColor(Color.Transparent)
.index($$this.currentIndex)
.width('100%')
.loop(false)
.autoPlay(false)
.indicator(false)

每个步骤页面应该根据其特殊性进行数据校验:

@Component
export struct CategoryView {
  submitInfo: SubmitInfoWrapper | undefined = undefined;

  build() {
    Column() {
      FooterView({
        nextCb: () => {
          let verified: boolean = this.submitInfo?.category !== undefined;
          if (!verified) {
            promptAction.showToast({ message: $r("app.string.stepper_info_not_filled") });
          }
          return verified;
        }
      })
    }
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题