HarmonyOS鸿蒙Next中关于popup内容设置100%到底继承哪里?tab子组件100%高度是哪里?
HarmonyOS鸿蒙Next中关于popup内容设置100%到底继承哪里?tab子组件100%高度是哪里?
在使用popup的时候一定要取消监听,遇到过反复创建崩溃的问题,不知道是bug还是特性?
// 通过句柄向对应的查询条件取消注册回调,可以由开发者自行决定在何时调用。
this.listener.off('layout', OffFuncLayout)
this.listener.off('draw', OffFuncDraw)
import inspector from '@ohos.arkui.inspector'
import componentUtils from '@ohos.arkui.componentUtils'
@State vis: boolean = false
@State pageMainContentHeight: number = 0
listener: inspector.ComponentObserver = inspector.createComponentObserver('pageMainContent')
aboutToAppear(): void {
this.listener.on('draw', () => {
this.pageMainContentHeight = componentUtils.getRectangleById('pageMainContent').size.height // 单位是px
})
}
@Builder
popupBuilder() {
Scroll() {
Column() {
//xxx
}
}
.width('100%')
.height(`${this.pageMainContentHeight}px`)
.backgroundColor(Color.White)
.scrollable(ScrollDirection.Vertical)
.scrollBar(BarState.Off)
.align(Alignment.Top)
}
xxx.bindPopup(this.vis, {
builder: this.popupBuilder,
placement: Placement.Bottom,
enableArrow: false,
popupColor: Color.Transparent,
mask: true,
radius: 0,
shadow: {
radius: 0,
},
backgroundBlurStyle: BlurStyle.NONE,
autoCancel: true,
// 设置为false(默认值),底部导航条会有避让。
// true会完全遮住,但是textInput、Search使用键盘输入数据时,会自动关闭
// showInSubWindow: true,
onStateChange: (e) => {
console.log(`onSearchAssociateVis 弹窗回调${e.isVisible}`)
this.searchAssociateVis = e.isVisible
}
})
pageMainContent高度需要自己准确计算,如果算多了,就会以屏幕顶部为起点,让人误以为Placement.Bottom失效了
更多关于HarmonyOS鸿蒙Next中关于popup内容设置100%到底继承哪里?tab子组件100%高度是哪里?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
- 在使用 popup 的时候一定要取消监听
- pageMainContentHeight 高度
– 可以获取组件当前坐标,使用屏幕高度取差值。scroll 添加 constraintSize({maxHeight:this.pageMainContentHeight}) 属性
更多关于HarmonyOS鸿蒙Next中关于popup内容设置100%到底继承哪里?tab子组件100%高度是哪里?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,Popup
组件的内容设置100%高度继承自其父容器的布局属性。Popup
作为一个浮动层,其内容的高度默认会根据内容自身的大小进行自适应。如果希望Popup
内容高度设置为100%,需要确保其父容器有明确的高度定义,例如通过height
属性设置为固定值或百分比。
对于Tab
子组件的100%高度,通常继承自TabContainer
或TabContent
的布局属性。Tab
子组件的高度默认会填充其父容器的高度。如果父容器的高度设置为100%,那么Tab
子组件的高度也会相应地设置为100%。
具体实现时,可以通过设置layoutWeight
或height
属性来确保Tab
子组件的高度能够继承父容器的高度。例如,在TabContent
中,可以将height
属性设置为100%
,这样其子组件的高度也会继承为100%。
总结:Popup
内容的100%高度继承自其父容器,Tab
子组件的100%高度继承自TabContainer
或TabContent
的布局属性。
在HarmonyOS鸿蒙Next中,Popup
组件的内容设置100%高度通常继承自其父容器或直接指定的布局参数。对于Tab
子组件的100%高度,默认情况下会继承自TabContent
容器的高度。如果未明确指定,TabContent
会占据父容器的剩余空间。建议在布局时明确设置Popup
和Tab
组件的高度属性,以确保其符合预期。