HarmonyOS 使用 expandSafeArea 控制组件扩展到安全区域,没有生效
页面顶部有1个Swiper 轮播组件,希望能够顶到顶部,使用 expandSafeArea 设置时无法生效。在其他页面设置 Image 顶到顶部 是有效果的。
build() {
Column() {
//顶部轮播
Swiper(this.swiperController) {
LazyForEach(this.headerAdvList, (item: AdvModel) => {
Image(item.imageurl)
.width(Const.FULL_WIDTH)
.height(designUnit(311))
.objectFit(ImageFit.Fill)
.onClick(() => {
KsRouterManager.getInstance().goAdv(this, item);
})
}, (item: AdvModel) => JSON.stringify(item))
}
.width(Const.FULL_WIDTH)
.height(designUnit(311))
.index(1)
.autoPlay(true)
.interval(4000)
.loop(true)
.indicator(this.headerAdvList.list.length > 1 ?
new DotIndicator()
.itemWidth(designUnit(6))
.itemHeight(designUnit(6))
.selectedItemWidth(designUnit(6))
.selectedItemHeight(designUnit(6))
.color('rgba(255, 255, 255, 0.3)')
.selectedColor($r('app.color.ks_color_FFFFFF')) : false)
.disableSwipe(this.headerAdvList.list.length > 1 ? false : true)
.expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP])
}
.width(Const.FULL_WIDTH)
.height(Const.FULL_HEIGHT)
.backgroundColor($r('app.color.ks_color_EEF4F6'))
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 视频组件无法扩展其安全区域
169浏览 • 1回复 待解决
实现安全区域,关于图片的安全区域设置
892浏览 • 1回复 待解决
HarmonyOS 顶部安全区域和底部安全区域的高度是多少,对应的单位是什么?
314浏览 • 1回复 待解决
设置安全区域后,两个子组件之间存在大概顶部安全区域大小的间隙,无法铺满
1551浏览 • 1回复 待解决
HarmonyOS window底部非安全区域无法正常获取,可正常获取到顶部非安全区域
118浏览 • 1回复 待解决
关于屏幕安全区域的问题咨询
191浏览 • 1回复 待解决
HarmonyOS Scroll组件,无法实现沉浸式,延伸到安全区域
213浏览 • 1回复 待解决
请问如何获取屏幕底部安全区域的高度?目前系统只提供了获取顶部安全区域高度的API
2161浏览 • 1回复 待解决
HarmonyOS XComponent怎么采用组件安全区方案?
171浏览 • 1回复 待解决
安全区域颜色改变,app中某个页面是全黑的,但底部安全区域还是白色,这个要如何改变呢?
133浏览 • 1回复 待解决
HarmonyOS 如何获取屏幕顶部和底部安全区域的高度
734浏览 • 1回复 待解决
HarmonyOS 如何获取屏幕状态栏跟底部安全区域的高度?
198浏览 • 1回复 待解决
HarmonyOS Column中嵌入Scroll时,底部元素导致安全区域失效问题
185浏览 • 1回复 待解决
如何进行手机的系统安全区域(safe area)适配?
32浏览 • 1回复 待解决
用数组变量控制组件属性不生效
1646浏览 • 1回复 待解决
HarmonyOS TabContent组件使用组件安全区方案不能延伸到状态栏
426浏览 • 1回复 待解决
当前组件,默认都会安全区避让,对于手机顶部,会有手机时间手机电量等字,如何设置不避让顶部安全区
241浏览 • 1回复 待解决
HarmonyOS 提供获取屏幕底部安全区的高度了吗?
167浏览 • 1回复 待解决
HarmonyOS如何控制组件的属性输出
277浏览 • 1回复 待解决
HarmonyOS expandSafeArea不生效
134浏览 • 1回复 待解决
HarmonyOS 获取系统时间戳没有生效
39浏览 • 1回复 待解决
为什么设置了Web组件的深色模式但是没有生效?
318浏览 • 1回复 待解决
Select组件的设置.optionWidth("50vp")没有生效
333浏览 • 1回复 待解决
HarmonyOS AVSession设置setAVPlaybackState正常,音频时长和进度没有生效
274浏览 • 1回复 待解决
Stack布局设置Alignment.BottomStart没有生效
2356浏览 • 1回复 待解决
根据您提供的demo,我们复现了您所说的Swiper设置expandSafeArea后内部image无法到顶的情况。
目前expandSafeArea是只作用于当前组件的,并不会传递给子组件。在您的代码中,只有Swiper属性设置了expandSafeArea,而内部的Image并未设置,所以在布局时,内部的Image仍然只会考虑安全区域。
如果您想让内部Image到顶,可以给Image也设置expandSafeArea。
以下是我们提供的试验小demo,您可以通过设置外部和内部组件的expandSafeArea来探索其布局规则。
另外,Swiper组件会在绘制时做裁剪,若只为内部组件设置expandSafeArea,会导致显示不全: