0

我创建了一个 appBar:它由一行组成:该行包含三个元素:一个图像/一个文本小部件/另一个图像。

这是代码:

appBar: AppBar(
        automaticallyImplyLeading: false,
        title: Row(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: [
            Expanded(
              flex: 1,
              child: Container(
                child: BarIcon(
                  image: 'icons/back.png',
                  width: 55.0,
                  height: 75.0,
                  onTap: () => Navigator.pop(context),
                ),
              ),
            ),
            Expanded(
              flex: 5,
              child: Container(
                child: Text(
                  widget.thema.toUpperCase(),
                  style: TextStyle(
                    fontSize: 25.0,
                  ),
                  textAlign: TextAlign.center,
                ),
              ),
            ),
            Expanded(
              flex: 1,
              child: Container(
                child: Image.asset(
                  widget.image,
                  height: 55.0,
                  width: 55.0,
                ),
              ),
            ),
          ],
        ),

图片显示很好,文字也很长,只要不太长。然后,它不是在两行上显示文本,而是添加“...”并剪切文本。

当标题太长时,有没有办法在两行中显示它?文本是通过“widget.thema”传递的,所以不可能知道标题的长度。

4

1 回答 1

1
appBar: AppBar(
        automaticallyImplyLeading: false,
        title: Row(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: [
            Expanded(
              flex: 1,
              child: Container(
                child: BarIcon(
                  image: 'icons/back.png',
                  width: 55.0,
                  height: 75.0,
                  onTap: () => Navigator.pop(context),
                ),
              ),
            ),
            Expanded(
              flex: 5,
              child: Container(
                child: Text(
                  widget.thema.toUpperCase(),
                  style: TextStyle(
                    fontSize: 25.0,
                  ),
                  maxLines: 2,   // TRY THIS
                  textAlign: TextAlign.center,
                ),
              ),
            ),
            Expanded(
              flex: 1,
              child: Container(
                child: Image.asset(
                  widget.image,
                  height: 55.0,
                  width: 55.0,
                ),
              ),
            ),
          ],
        ),
于 2021-04-06T08:36:58.513 回答