List组件的页面复写了onMeasure/onLayout生命周期,数据列表不可见

List组件的页面复写了onMeasure/onLayout生命周期,数据列表不可见复现demo:

@Entry 
@Component 
struct MainPage { 
  public arr: Array<string> = ['1', '2', '3'] 
 
  build() { 
    Row() { 
      Column() { 
        Stack() { 
          List({ space: 40 }) { 
            ForEach( 
              this.arr, 
              (item: string, index) => { 
                ListItem() { 
                  Text(item).width('100%').height(150).textAlign(TextAlign.Center).onClick(() => { 
                    console.log('点击') 
                  }) 
                }.margin(20).backgroundColor(Color.White) 
              }) 
          } 
        }.width('100%').height('100%').backgroundColor(Color.Gray) 
 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
 
  onMeasure(children: Array<LayoutChild>, constraint: ConstraintSizeOptions): void { 
    console.log('cwq onMeasure') 
  } 
 
  onLayout(children: Array<LayoutChild>, constraint: ConstraintSizeOptions): void { 
    console.log('cwq onLayout') 
  } 
}
HarmonyOS
2024-02-20 10:34:25
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
踮脚在树梢上

调用onMeasure和onLayout相当于自己给组件设置大小和布局,不设置的话就不会渲染。

示例代码

onLayout(children: Array<LayoutChild>, constraint: ConstraintSizeOptions) { 
  let pos = 0; 
  children.forEach((child) => { 
    child.layout({ position: { x: pos, y: pos }, constraint: constraint }) 
    pos += 100; 
  }) 
}
分享
微博
QQ
微信
回复
2024-02-20 19:48:06
相关问题
Dialog组件生命周期问题
168浏览 • 1回复 待解决
HarmonyOS页面onPageShow生命周期不回调
587浏览 • 1回复 待解决
HarmonyOS Navigation跳转组件生命周期
284浏览 • 2回复 待解决
如何知晓navigation组件生命周期
110浏览 • 1回复 待解决
监听Ability生命周期
921浏览 • 1回复 待解决
HarmonyOS能否全局监听页面生命周期
307浏览 • 1回复 待解决
HarmonyOS TabContent页面生命周期不触发
112浏览 • 1回复 待解决
TabContent 内容生命周期
170浏览 • 1回复 待解决
弹窗组件无法调用生命周期接口
2002浏览 • 1回复 待解决
如何监听AbilitySlice生命周期
4990浏览 • 1回复 待解决
应用内生命周期流转
385浏览 • 1回复 待解决
AbilityStage组件容器生命周期和回调
1477浏览 • 1回复 待解决
Window窗口生命周期问题
186浏览 • 1回复 待解决
swiper切换监听生命周期
819浏览 • 1回复 待解决
如何监听subwindow生命周期
226浏览 • 1回复 待解决
HarmonyOS App生命周期是什么?
196浏览 • 2回复 待解决