Flutter – 连续两个文本,左边一个优雅地溢出

标签 flutter dart text flutter-layout flutter-widget

如何让两个并排的文本小部件只允许最左边的一个优雅地溢出?

一列中的一个文本小部件很容易优雅地溢出。 两个文本小部件连续并排是有问题的。

堆栈溢出需要更多细节,但老实说,我现在可能只是在浪费你更多的时间。

Widget _listItem({String title, String subtitle}){
  return Row(
    children: <Widget>[
      _listItemIcon(),
      Expanded(
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            _listItemTitle(title),
            Row(
              children: <Widget>[
                _listItemSubtitle(subtitle), // how do I allow this to overflow gracefully
                _listItemTime("2m") // but stop this from overflowing
              ],
            )
          ],
        ),
      ),
      _listItemFavorite()
    ],
  );
}

//////////////
Widget _listItemIcon(){
  return Icon(Icons.message);
}

Widget _listItemTitle(String title){
  return Text(
    title,
    softWrap: false,
    overflow: TextOverflow.fade,
    style: TextStyle(
      fontSize:24.0
    ),
  );
}

Widget _listItemSubtitle(String subtitle){
  return Text(
    "[$subtitle]",
    softWrap: false,
    overflow: TextOverflow.fade,
    );
}

Widget _listItemTime(String time){
  return Text(
    "[$time]",
    softWrap: false,
    overflow: TextOverflow.fade,
    );
}

Widget _listItemFavorite(){
  return Icon(Icons.favorite);
}

enter image description here

最佳答案

您可以使用 Flexible 小部件:

Widget _listItemSubtitle(String subtitle) {
  return new Flexible(
    fit: FlexFit.loose,
    child: Text(
      "[$subtitle]",
      softWrap: false,
      overflow: TextOverflow.fade,
    ),
  );
}

result


替代方案:

如果您希望时间小部件始终位于右侧,您可以将字幕文本包装在 Expanded 小部件中:

Widget _listItemSubtitle(String subtitle){
  return Expanded(
    child: Text(
      "[$subtitle]",
      softWrap: false,
      overflow: TextOverflow.fade,
    ),
  );
}

result

关于Flutter – 连续两个文本,左边一个优雅地溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51087681/

相关文章:

dart - flutter 启动画面

html - 我可以在 CSS 文件中放入可显示的文本吗?

java - 基于内容估计文本宽度的算法

dart - Flutter dropdownbutton添加装饰报错

firebase - 使用flutter在Firebase上上传文件时,如何渲染加载程序?

android - NoSuchMethodError : The method 'of' was called on null 错误

dart - 使用嵌套数组列表将字符串转换为 Json

types - 在Polymer Dart中使用带$的强类型不起作用

flutter - 在Flutter中异步加载图片

android - 从 Internet 下载 .txt 文件