HarmonyOS tabs滑动切换时长,第一个tab右滑回弹大,最后一个tab左滑回弹大

1、第一个tabs按住右滑回弹比较大,如何关闭回弹效果。

2、最后一个tabs按住左滑回弹比较大,如何关闭回弹效果。

3、tabs滑动切换会有延迟,需要等几秒才能切换到下一个tabs,左右切换时如何立即切换。

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

问题1、2添加PanGesture手势来实现,参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-gesture-events-binding-V5#gesture常规手势绑定方法

问题3可以使用子页签样式SubTabBarStyle方案规避,参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-container-tabcontent-V5#subtabbarstyle9对象说明

示例参考如下:

@Entry
@Component
struct TabContentPage {
  @State message: string = 'Hello World';
  @Provide('count') count: number = 0;

  build() {
    Row() {
      Column() {
        Tabs({
          index: 0,
        }) {
          TabContent() {
            // Column().backgroundColor(Color.Red).width('50%').height('50%')
            TestConsumeAndProvideA()
          }
          .tabBar(new SubTabBarStyle('1'))
          .backgroundColor(Color.Blue)
          .gesture(PanGesture(new PanGestureOptions({ direction: PanDirection.Right })))

          TabContent() {
            // Column().backgroundColor(Color.Green).width('50%').height('50%')
            TestConsumeAndProvideA()
          }.tabBar(new SubTabBarStyle('2')).backgroundColor(Color.Red)

          TabContent() {
            // Column().backgroundColor(Color.Blue).width('50%').height('50%')
            TestConsumeAndProvideA()
          }
          .tabBar(new SubTabBarStyle('3'))
          .backgroundColor(Color.Green)
          .gesture(PanGesture(new PanGestureOptions({ direction: PanDirection.Left })))
        }
        .vertical(false)
        .scrollable(true)
        .animationDuration(0)
        .barMode(BarMode.Scrollable)
        .barHeight(56)
        .width('100%')
        .height('100%')
        .onChange((index: number) => {
          promptAction.showToast({ message: `当前的页面索引是${index}` })
          if (index === 1) {
            this.count = this.count + 1
          }
        })
        .barMode(BarMode.Scrollable)
      }
      .width('100%')
    }
    .height('100%')
  }
}

@Component
struct TestConsumeAndProvideA {
  build() {
    Text("测试")
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS List第一个可见的ListItem
310浏览 • 1回复 待解决
HarmonyOS 如何返回路由的第一个视图
22浏览 • 1回复 待解决
mysql连接的一个问题
2218浏览 • 1回复 待解决
HarmonyOS list最后一个显示不出来
36浏览 • 1回复 待解决
HarmonyOS 怎么禁止
38浏览 • 1回复 待解决