flutter - 如何使文本窗口小部件的大小随内容变化而变化?

标签 flutter dart flutter-layout

我想设计一个包含两个Text小部件的组合Text小部件。

第一个“文本”窗口小部件的大小随内容的变化而变化,当达到最大长度时,将显示省略号。如下所示,红线部分是固定的。





这是我的代码:

Row(
  children: <Widget>[
    Expanded(
      child: Text(
        'W',
        overflow: TextOverflow.ellipsis,
      ),
    ),
    Text(
      '(0x1234…1234)',
      style: TextStyle(
        fontSize: 12,
        color: Colors.black,
      ),
    ),
  ],
);

当长度最大时,显示正常。但是,当长度非常小时,中间会出现空白。



那么,我该如何改进我的代码?

最佳答案

您需要使用Flexible小部件而不是Expanded

Row(
  children: <Widget>[
    Flexible(
      child: Text(
        'Was',
        overflow: TextOverflow.ellipsis,
      ),
    ),
    Text(
      '(0x1234…1234)',
      style: TextStyle(
        fontSize: 12,
        color: Colors.black,
      ),
    ),
  ],
),

使用 Flexible 小部件可以使RowColumnFlex的子级灵活地扩展以填充主轴上的可用空间。

Expanded 时,强制子项扩展以填充可用空间。

您还可以将fit: FlexFit.tight [ child 被迫填充可用空间]或fit: FlexFit.loose [ child 最多可以与可用空间一样大(但允许更小)。]传递给Flexible小部件。

默认情况下,它设置为FlexFit.loose

关于flutter - 如何使文本窗口小部件的大小随内容变化而变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58296807/

相关文章:

dart - 如何在Dart中扩展现有的包/库?

debugging - 如何在Android和iOS上同时运行或调试flutter项目?

flutter - 如何使用flutter_blue获取flutter BLE中的血糖仪数据

firebase - 在Firebase中手动设置集合的文档值是否正确或安全?

flutter - 从Flutter中的子小部件按返回按钮后,如何不调用didChangeDependencies()?

flutter - 如何在 Flutter 中创建 outlined Card widget

flutter - flutter 中的多向滚动

user-interface - 在 BottomNavigationBar 的屏幕之间水平滑动?

angularjs - ng-repeat 仅适用于迭代 List 而不是 Iterable 或 Set

firebase - 错误 :flutter/lib/ui/ui_dart_state. cc(177) 未处理的异常:NoSuchMethodError:在 null 上调用了方法 'insert'