HarmonyOS 鸿蒙Next:子view高度未完整显示,非容器剩余高度而是容器100%高度

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:子view高度未完整显示,非容器剩余高度而是容器100%高度

线性容器里面 第一层有了两个view  一个是顶部view  第二个scroll  scroll内部的view整体高度超过了屏幕的高度,但是scroll里面最后一个view没有显示完整,看遮挡范围大概是顶部view的高度

build() {
Column() {
SelectDateHorizontalView()
Scroll() {
Stack({ alignContent: Alignment.Top }) {
LifeRecordSingleDayCompareView()
Column() {
InputFingerTargetMaxMinView()
BloodSugarTargetMaxMinView()
BloodSugarLineChartView()
LifeRecordListView()
}
.width(‘100%’)
.padding({ left: this.padLeft, right: this.padLeft, bottom: $r(‘app.float.marge_view_top’) })
.margin({ top: this.padTop, left: this.padLeft, right: this.padLeft })
}
}
.width(‘100%’)
.height(‘auto’)
}
.width(‘100%’)
.height(‘100%’)
.backgroundColor($r(‘app.color.bg_activity_light_green’))
.justifyContent(FlexAlign.Start)
}

临时解决办法  获取第一层容器的高度和顶部view的高度  计算scroll 能使用的高度  将scroll的高度进行动态设置
 

build() {
Column() {
SelectDateHorizontalView()
.onSizeChange((oldValue: SizeOptions, newValue: SizeOptions) => {
this.highSelect = newValue.height as number
})
Scroll() {
Stack({ alignContent: Alignment.Top }) {
LifeRecordSingleDayCompareView()
Column() {
InputFingerTargetMaxMinView()
BloodSugarTargetMaxMinView()
BloodSugarLineChartView()
LifeRecordListView()
}
.width(‘100%’)
.padding({ left: this.padLeft, right: this.padLeft, bottom: $r(‘app.float.marge_view_top’) })
.margin({ top: this.padTop, left: this.padLeft, right: this.padLeft })
}
}
.width(‘100%’)
.height(this.highLayout - this.highSelect)
}
.width(‘100%’)
.height(‘100%’)
.backgroundColor($r(‘app.color.bg_activity_light_green’))
.justifyContent(FlexAlign.Start)
.onSizeChange((oldValue: SizeOptions, newValue: SizeOptions) => {
this.highLayout = newValue.height as number
})
}

除了上面这个方法以外,还有没有其他方法可以解决这个问题的


关于HarmonyOS 鸿蒙Next:子view高度未完整显示,非容器剩余高度而是容器100%高度的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。

3 回复
不指定高度呢,给scroll设置layoutweight:1
  要会使用  layoutweight
如果子View和父View有些margin并且高度指定100%,那子View下面就会突出去,这个100%不是指剩余高度的100%..........
回到顶部