关于 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)
  }
}
相关推荐
Giser探索家10 分钟前
低空智航平台技术架构深度解析:如何用AI +空域网格破解黑飞与安全管控难题
大数据·服务器·前端·数据库·人工智能·安全·架构
gnip1 小时前
前端实现自动检测项目部署更新
前端
John_ToDebug2 小时前
JS 与 C++ 双向通信实战:基于 WebHostViewListener 的消息处理机制
前端·c++·chrome
gnip2 小时前
监听设备网络状态
前端·javascript
As33100103 小时前
Chrome 插件开发实战:打造高效浏览器扩展
前端·chrome
xrkhy3 小时前
nvm安装详细教程(卸载旧的nodejs,安装nvm、node、npm、cnpm、yarn及环境变量配置)
前端·npm·node.js
德育处主任5 小时前
p5.js 3D盒子的基础用法
前端·数据可视化·canvas
前端的阶梯5 小时前
为何我的figma-developer-mcp不可用?
前端
weixin_456904275 小时前
Vue3入口文件main.js解析
前端·javascript·vue.js
Awbeci5 小时前
微前端-解决MicroApp微前端内存泄露问题
前端