【HarmonyOS NEXT】flexShrink属性

一、背景

希望达到的布局效果是文字与按钮左右对齐,居中显示,但实际效果中按钮的显示与效果不符,如下图所示

二、问题

按钮是用row组件包裹的text,左右padding给的是一样的大小,但是明显右边padding会比左边padding大很多

三、原因

外层使用的flex包裹text与row,主要是为了解决文字过多时,按钮超出布局的问题,但是flex布局内使用row组件,需要给其row添加flexShrink属性

flexShrink

设置父容器压缩尺寸分配给此属性所在组件的比例。当父容器为Column、Row时,需设置主轴方向的尺寸。

四、解决方法

给row组件添加.flexShrink(0)

五、完整代码

javascript 复制代码
@Entry
@Component
struct Index {
  build() {
    Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) {
      Text('设置父容器压缩尺寸分配给此属性所在组件的比例。当父容器为Column、Row时,需设置主轴方向的尺寸')
        .fontSize(12)
        .fontWeight(400)
        .fontColor('#222427')
        .lineHeight(19)
        .margin({ right: 8 })


      Row() {
        Text('修改按钮')
          .fontSize(12)
          .fontWeight(400)
          .fontColor(Color.White)
      }
      .flexShrink(0)
      .padding({
        left: 13,
        right: 13,
        top: 6,
        bottom: 6
      })
      .backgroundColor('#0165b8')
      .borderRadius(4)
    }
    .backgroundColor('#dfeefd')
    .padding({
      left: 12,
      right: 12,
      top: 8,
      bottom: 8
    })
    .margin({ top: 20 })
  }
}
相关推荐
世人万千丶1 小时前
鸿蒙 PC 避坑:DevEco Studio运行hdc命令执行异常完全指南
华为·开源·harmonyos·鸿蒙·鸿蒙系统
Latte Moments开发1 小时前
Harmony鸿蒙6.0实战开发项目--鸿蒙记账本(登录、注册、记账、图表)【代码在文末】
华为·harmonyos
Swift社区1 小时前
鸿蒙 App 集成 AI 助手:架构设计 + 实战代码
人工智能·华为·harmonyos
Dream-Y.ocean2 小时前
鸿蒙PC平台 Carnac 按键显示适配实战:从 Windows 到 HarmonyOS 的 Electron 迁移指南
windows·electron·harmonyos
●VON2 小时前
AtomGit Flutter鸿蒙客户端:仓库详情页
flutter·华为·跨平台·harmonyos·鸿蒙
小雨青年2 小时前
鸿蒙 HarmonyOS 6 | Pura X Max 鸿蒙原生适配 19:设置页在 Pura X Max 上改成分组布局
华为·harmonyos
浮芷.3 小时前
鸿蒙PC端 TTS 并发调用问题详解:资源竞争与队列管理
算法·华为·开源·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨3 小时前
基于鸿蒙PC Electron框架技术完成的表单验证技术详解
前端·javascript·华为·electron·前端框架·鸿蒙
提子拌饭1333 小时前
饮料含糖量查询应用 - 鸿蒙PC用Electron框架完整实现
前端·javascript·华为·electron·前端框架·鸿蒙
nashane3 小时前
HarmonyOS 6学习:句柄泄漏(Fd Leak)从“崩溃现场”到“代码行”的精准狙击指南
学习·华为·音视频·harmonyos