如何在Flutter中同时包装和缩小文本?

时间:2019-09-19 07:38:57

标签: flutter dart flutter-layout

我在圆形容器内有一个文本,该文本来自API。因此,我无法控制文本的长度。我用FittedBox缩小了容器中的文本,尽管显示了多长时间。

             Container(
                        height: 44,
                        width: 44,
                        padding: EdgeInsets.all(3),
                        alignment: Alignment.center,
                        child: Row(
                          children: [
                            Flexible(
                              child: FittedBox(
                                child: Text('Best Seller'),
                              ),
                            ),
                          ],
                        ),
                        decoration: BoxDecoration(shape: BoxShape.circle, color: Color(0xFFF37C43)),
                      )

我的问题是如何在换行的同时缩小文本的所有单词。我曾考虑过使用Column并根据文本的每个单词生成子窗口小部件。但这似乎不是很直观。如果需要的话,我愿意更改布局设计。

3 个答案:

答案 0 :(得分:1)

使用自动调整大小文字。这是链接 https://pub.dev/packages/auto_size_text

答案 1 :(得分:0)

 Container(
        height: 44,
        width: 44,
        padding: EdgeInsets.all(3),
        alignment: Alignment.center,
        child: Wrap(
          children: [
            Text('Best Seller', style: TextStyle(fontSize: 10),),
          ],
        ),
        decoration:
            BoxDecoration(shape: BoxShape.circle, color: Color(0xFFF37C43)),
      ),

答案 2 :(得分:0)

尝试设置与单词长度兼容的 fontSize。例子:

Text(
  myString,
  style: TextStyle(
    fontSize: myString.length > 60? 30: myString.length > 40? 40 : 50,
  ),
)