HarmonyOS 使用scroll组件效果异常

界面布局竖直方向太多时候,使用scroll支持竖直滚动,但滚动会回弹,无法正常操作,把edgeEffect(EdgeEffect.None)设置成None后,不会回弹了,但是也不滚动了。

代码:

@Component
export struct MinePage {
  @Consume isLogin: boolean
  @State titleBarPadding: string = '0'
  scroller: Scroller = new Scroller()
  aboutToAppear(): void {
    // 获取系统顶部导航栏的高度
    this.titleBarPadding = getSystemBarHeight()
  }

  build() {
    Scroll(this.scroller) {
      Column() {
        // 第一部分: 消息提示和购买 1.0版本暂时隐藏
        PageHeader()
        // 第二部分:  云手机用户登录信息
        UserAvatar()
        // 第三部分:  订单等服务 1.0版本暂时隐藏
        Shortcuts()
        //  第五部分: 我的云手机等的列表
        ManageList()
      }
      .width('100%')
      .height('100%')
      .padding({
        left: $r('app.float.padding_16'),
        right: $r('app.float.padding_16'),
        top: this.titleBarPadding
      })
      .backgroundColor('#F5F1FB')
    }
    .scrollable(ScrollDirection.Vertical) // 滚动方向纵向
    .scrollBar(BarState.On) // 滚动条不显示
    .scrollBarColor(Color.Gray) // 滚动条颜色
    .scrollBarWidth('4') // 滚动条宽度
    .friction(0.6)
    .edgeEffect(EdgeEffect.None)
  }
}
HarmonyOS
2024-12-24 17:47:06
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
fox280

参考示例代码:

@Entry
@Component
export struct Index {
  private isLogin: boolean = true
  @State titleBarPadding: string = '0'
  scroller: Scroller = new Scroller()
  private arr1: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  aboutToAppear(): void {
    // 获取系统顶部导航栏的高度
    this.titleBarPadding = '30'
  }

  build() {
    Scroll() {
      Column() {
        Row() {
          Text("PageHeader")
        }.backgroundColor(Color.Red).height(200)

        Row() {
          Text("UserAvatar")
        }.backgroundColor(Color.Orange)

        Row() {
          Text("Shortcuts")
        }.backgroundColor(Color.Blue).margin({ bottom: 100 })

        ManageList()
      }.width("100%")
    }
    .edgeEffect(EdgeEffect.None)
    .friction(0.6)
    .backgroundColor('#DCDCDC')
    .scrollBar(BarState.Off)
    .width('100%')
    .height('100%')
  }
}

@Component
struct ManageList {
  scrollerList: Scroller = new Scroller()
  private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  build() {
    Column() {
      List({ space: 20, scroller: this.scrollerList }) {
        ForEach(this.arr, (item: number) => {
          ListItem() {
            Text("ListItem" + item)
              .width("100%")
              .height("100%")
              .borderRadius(15)
              .fontSize(16)
              .textAlign(TextAlign.Center)
              .backgroundColor(Color.White)
          }.width("100%").height(100)
        }, (item: string) => item)
      }
      .width("100%")
      .height("100%")
      .edgeEffect(EdgeEffect.None)
      .friction(0.6)
    }.width('100%')
  }
}
分享
微博
QQ
微信
回复
2024-12-24 19:04:10
相关问题
HarmonyOS Scroll组件onScroll回调异常
170浏览 • 1回复 待解决
Scroll容器中子组件吸顶效果
546浏览 • 1回复 待解决
HarmonyOS Scroll组件使用问题
555浏览 • 1回复 待解决
如何去掉Scroll回弹效果
1063浏览 • 1回复 待解决
HarmonyOS web加载链接显示效果异常
193浏览 • 1回复 待解决
HarmonyOS Scroll使用问题
153浏览 • 1回复 待解决
如何实现scroll、list单边回弹效果
855浏览 • 1回复 待解决
HarmonyOS scroll组件问题
217浏览 • 1回复 待解决
Text实现scroll效果怎么弄?
6053浏览 • 1回复 待解决
tabs结合scroll实现吸顶效果
1785浏览 • 1回复 待解决
HarmonyOS Scroll组件无法滑动
635浏览 • 1回复 待解决
HarmonyOS Scroll组件滚动控制
230浏览 • 1回复 待解决
使用swiper组件实现viewPager效果
1746浏览 • 1回复 待解决
HarmonyOS Scroll组件滚动问题
794浏览 • 1回复 待解决