关于 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)
  }
}
相关推荐
Highcharts.js1 小时前
缺失数据可视化图表开发实战|Highcharts创建人员出生统计面积图表示例
开发语言·前端·javascript·信息可视化·highcharts·图表开发
LaughingZhu8 小时前
Product Hunt 每日热榜 | 2026-05-21
前端·人工智能·经验分享·chatgpt·html
怕浪猫8 小时前
Electron 开发实战(一):从零入门核心基础与环境搭建
前端·electron·ai编程
小鹏linux8 小时前
Ubuntu 22.04 部署开源免费具有精美现代web页面的Casdoor账号管理系统
linux·前端·ubuntu·开源·堡垒机
前端若水9 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
Bigger9 小时前
mini-cc:一个轻量级 AI 编程助手的诞生
前端·ai编程·claude
涵涵(互关)10 小时前
Naive-ui树型选择器只显示根节点
前端·ui·vue
BY组态10 小时前
Ricon组态系统最佳实践:从零开始构建物联网监控平台
前端·物联网·iot·web组态·组态
BY组态10 小时前
Ricon组态系统vs传统组态软件:为什么选择新一代Web组态平台
前端·物联网·iot·web组态·组态
SoaringHeart10 小时前
Flutter进阶:OverlayEntry 插入图层管理器 NOverlayZIndexManager
前端·flutter