在HarmonyOS NEXT开发中Column布局包含list?

在HarmonyOS NEXT开发中Column布局包含list?column布局中有普通布局,同时包含list时,最后一个list的最后元素无法完全显示,如何解决?

阅读 560
1 个回答

最有可能的原因是非flex的线性布局容器给子组件布局时,子组件获得的布局约束会受如layoutWeight或flexShrink、flexGrow的影响。其他组件和list组件的布局约束相同,list使用maxHeight获得真实高度(等于column的高度),再加上其他组件的高度占位,使list中的最后一部分item无法完整显示在屏幕内,list上设置layoutWeight后,column会为list指定大小为剩余空间大小,所以list就能完整显示,
示例代码如下:如若list不设置 .layoutWeight(100),则list的最后一个item就不能完整显示

@Entry 
@Component 
struct Index { 
  @State strList : Array<String> = ['Hello World','init','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17'] 
  build() { 
    Column() { 
      Text("111111") 
        .fontSize(100) 
      List() { 
        ForEach(this.strList, (item: string,index: number) => { 
          ListItem(){ 
            Text(item) 
              .fontSize(100) 
          } 
        }) 
      } 
      .layoutWeight(300) 
    } 
    .width('100%') 
    .height('100%') 
  } 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进