【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 })
  }
}
相关推荐
夜雨声烦丿38 分钟前
Flutter 框架跨平台鸿蒙开发 - 打造带账单分摊功能的记账本,支持多人AA与智能结算
flutter·华为·harmonyos
南村群童欺我老无力.1 小时前
Flutter 框架跨平台鸿蒙开发 - 打造时钟、番茄钟、倒计时三合一应用
flutter·华为·typescript·harmonyos
菜鸟小芯1 小时前
【开源鸿蒙跨平台开发先锋训练营】DAY 3 Flutter集成Dio网络请求,本地美食数据清单列表功能开发
flutter·harmonyos·美食
奋斗的小青年!!1 小时前
Flutter适配OpenHarmony富文本RichText组件实践
flutter·harmonyos·鸿蒙
奋斗的小青年!!10 小时前
Flutter跨平台开发鸿蒙应用实战:OA系统考勤打卡组件深度解析
flutter·harmonyos·鸿蒙
全栈开发圈10 小时前
新书速览|鸿蒙之光HarmonyOS 6应用开发入门
华为·harmonyos
儿歌八万首13 小时前
鸿蒙 ArkUI 实战:沉浸式状态栏的 3 种实现方案
华为·harmonyos
大雷神13 小时前
HarmonyOS中考试模板开发教程
华为·harmonyos
全栈开发圈13 小时前
干货分享|鸿蒙6开发实战指南
人工智能·harmonyos·鸿蒙·鸿蒙系统
鸣弦artha13 小时前
Flutter框架跨平台鸿蒙开发 —— Image Widget 基础:图片加载方式
flutter·华为·harmonyos