关于 expandSafeArea 不生效问题

关于 expandSafeArea 不生效问题

参考文档

expandSafeArea 设置不生效问题。

例如一下代码:想让在最后下边显示一个全选和删除按钮,给了最后一个 row 的高度,但是设置了 expandSafeArea 还是不生效。

typescript 复制代码
@Entry
@Component
struct ExpandSafeAreaPage {
  @State message: string = 'Hello World';

  build() {
    Column() {
      Column() {
        Text(this.message)
      }
      .layoutWeight(1)

      Row() {
        Text('全选')
        Text('删除')
      }
      .width('100%')
      .height(50) // 这个地方设置了一个固定高度
      .backgroundColor(Color.Black)
      .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM])
    }
    .height('100%')
    .width('100%')
    .backgroundColor(Color.White)
  }
}

但是这个情况的问题点就是由于那个设置了那个高度。里边有个说明:

设置 expandSafeArea 属性进行组件绘制扩展时,建议组件尺寸不要设置固定宽高(百分比除外),当设置固定宽高时,扩展安全区域的方向只支持[SafeAreaEdge.TOP, SafeAreaEdge.START],扩展后的组件尺寸保持不变。

说明文档

因此上述代码正确的实现方式是,把 expandSafeArea 的组件的高度去掉,在里边写一个高度把他撑开就行了。

typescript 复制代码
@Entry
@Component
struct ExpandSafeAreaPage {
  @State message: string = 'Hello World';

  build() {
    Column() {
      Column() {
        Text(this.message)
      }
      .layoutWeight(1)

      Row() {
        Text('全选')
          .height(50)
        Text('删除')
          .height(50)
      }
      .width('100%')
      .backgroundColor(Color.Black)
      .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM])
    }
    .height('100%')
    .width('100%')
    .backgroundColor(Color.White)
  }
}
相关推荐
谢尔登5 小时前
defineProperty如何弥补数组响应式不足的缺陷
前端·javascript·vue.js
蓝瑟忧伤5 小时前
前端技术新十年:从工程体系到智能化开发的全景演进
前端
Baklib梅梅6 小时前
员工手册:保障运营一致性与提升组织效率的核心载体
前端·ruby on rails·前端框架·ruby
IT_陈寒6 小时前
Redis性能翻倍的5个冷门技巧,90%开发者都不知道第3个!
前端·人工智能·后端
jingling5558 小时前
vue | 在 Vue 3 项目中集成高德地图(AMap)
前端·javascript·vue.js
油丶酸萝卜别吃8 小时前
Vue3 中如何在 setup 语法糖下,通过 Layer 弹窗组件弹出自定义 Vue 组件?
前端·vue.js·arcgis
J***Q29214 小时前
Vue数据可视化
前端·vue.js·信息可视化
ttod_qzstudio16 小时前
深入理解 Vue 3 的 h 函数:构建动态 UI 的利器
前端·vue.js
_大龄16 小时前
前端解析excel
前端·excel
一叶茶16 小时前
移动端平板打开的三种模式。
前端·javascript