HarmonyOS 鸿蒙Next scroll组件 固定显示个数

发布于 1周前 作者 itying888 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next scroll组件 固定显示个数

我有一个可以水平滚动的scroll,我想在初始的时候默认显示6个item,但是我设置宽度平分,第6个会显示不全

[@Component](/user/Component)
export default struct PlanView {
  build() {
    Column() {
      Scroll(this.scroller) {
        Row({ space: 8 }) {
          ForEach(Array.from({ length: 36 }), (item: number, index: number) => {
            Column() {
              this.item()//@bulider
            }
            .width('16.6%')  // 水平6等分,每个元素占1/6
            .height('60%')
            .onClick(() => {
            })
          })
        }
        .justifyContent(FlexAlign.Center)
      }
      .width('100%')
      .scrollable(ScrollDirection.Horizontal)
      .scrollBar(BarState.Off)
    }
    .width('100%')
  }
}
 
2 回复

 可以把Row({ space: 8 })中的space设置去掉,或者在计算等分时去掉space间隔部分

[@Entry](/user/Entry)
[@Component](/user/Component)
struct PlanView {
  scroller: Scroller = new Scroller()
  private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

build() { Column() { Scroll(this.scroller) { Row() { ForEach(this.arr, (item: number) => { ListItem() { Text(’’ + item) .height(200) .fontSize(20) .textAlign(TextAlign.Center) .borderRadius(10) .backgroundColor(0xFFFFFF) }.width(‘16.6%’) }, (item: string) => item) } .justifyContent(FlexAlign.Center) } .width(‘100%’) .scrollable(ScrollDirection.Horizontal) .scrollBar(BarState.Off) } .width(‘100%’) } }

在HarmonyOS鸿蒙Next中,关于scroll组件固定显示个数的需求,通常不是scroll组件直接提供的功能。scroll组件主要用于在子组件布局尺寸超过父组件时提供滚动功能。若要实现固定显示个数的效果,需要结合其他布局组件和逻辑控制来实现。

一种可能的实现方式是:

  1. 使用scroll组件包裹一个可控制子组件数量的容器(如row或column)。
  2. 通过编程逻辑控制该容器中的子组件数量,以达到固定显示的效果。
  3. 根据需要,可以配合滚动事件(如onScroll、onScrollStart等)来动态调整显示的子组件。

但请注意,scroll组件本身不提供直接控制显示个数的属性。因此,实现这一功能需要开发者根据具体需求进行自定义开发。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部