dart - 行内居中文本

标签 dart flutter

备注:我刚刚使用ListTile解决了我的问题而不是我的实现(我是 Flutter 的新手,不知道存在类似的东西)。但还是很高兴看到您如何解决问题。


我在 Row 中将 Text 居中时遇到问题。这是我的 IconRow 小部件的代码:

import 'package:flutter/material.dart';

class IconRow extends StatelessWidget {
  Icon _icon;
  Widget _widget;

  IconRow(Icon _icon, Widget _widget) {
    this._icon = _icon;
    this._widget = _widget;
  }

  @override
  Widget build(BuildContext context) {
    return new Container(
        decoration: new BoxDecoration(color: Colors.red),
    child: new Row(
      mainAxisAlignment: MainAxisAlignment.start,
      crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
        this._icon,
        new Expanded(
            child: new Padding(
                padding: EdgeInsets.only(left: 10.0), child: this._widget))
      ]
    ));
  }
}

我在填充和其他小部件中像这样使用它:

new IconRow(
    new Icon(Icons.date_range),
    new Text(
        this._preparationStep.date,
        maxLines: 3,
        overflow: TextOverflow.ellipsis,
));

结果如下图所示。文本顶部对齐,如下图所示。第二个文本看起来好多了,因为它是多行文本。该行被涂成红色以可视化行间距。

Flutter Text Top Aligned

我已经尝试将 crossAxisAlignment: CrossAxisAlignment.start 更改为 CrossAxisAlignment.center 以根据需要将文本居中,但也将图像移动到行的中心如下图所示。

Flutter Image Centered

如何在 Icon 仍然顶部对齐的情况下将 Text 居中?

最佳答案

您可以将Icon 包装成Align

Row(
  crossAxisAlignment: CrossAxisAlignment.center,
  children: <Widget>[
    Align(
     alignment: Alignment.topCenter,
     child: Icon(Icons.ac_unit),
    ),
    Text("Foo")
  ],
)

关于dart - 行内居中文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51696258/

相关文章:

syntax - 构造者的困惑

firebase - 在 Firebase Firestore 中的数组或对象上过滤 Firebase 集合

flutter - 插件 `advance_pdf_viewer` 使用了不推荐使用的 Android 嵌入版本,即使最新版本添加了 pubsec

flutter - 减少应用栏按钮中的填充

flutter - 从Flutter中的图库中保存ImagePicker图像

date - 如何使用Firestore仅从特定日期获取数据?

flutter - 如何从 flutter 中的数据JSON列表解析列表

html - 如何在您的网站上使用 dartscript

flutter - 使Flutter Dart 流保持打开状态以查看模型的更改

flutter - 如何自动更正 ListView 中的滚动位置? ( flutter )