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