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组件生命周期问题
314浏览 • 1回复 待解决
HarmonyOS navigation主页面生命周期
426浏览 • 1回复 待解决
HarmonyOS Navigation跳转组件生命周期
558浏览 • 2回复 待解决
HarmonyOS页面onPageShow生命周期不回调
992浏览 • 1回复 待解决
如何知晓navigation组件生命周期
248浏览 • 1回复 待解决
监听Ability生命周期
1147浏览 • 1回复 待解决
HarmonyOS能否全局监听页面生命周期
568浏览 • 1回复 待解决
HarmonyOS TabContent页面生命周期不触发
382浏览 • 1回复 待解决
TabContent 内容生命周期
362浏览 • 1回复 待解决
弹窗组件无法调用生命周期接口
2206浏览 • 1回复 待解决
应用内生命周期流转
615浏览 • 1回复 待解决
如何监听AbilitySlice生命周期
5104浏览 • 1回复 待解决
HarmonyOS 模块生命周期管理
223浏览 • 1回复 待解决
AbilityStage组件容器生命周期和回调
2878浏览 • 1回复 待解决