Для этого есть два подхода.
- Использование FittedBox
- Использование TextPainter (вычислить ширину с помощью Text Painter и обновить шрифт)
Используя FitterdBox, оберните текстовый виджет в виджет FittedBox с параметром fitWidth.
Container( width: 250, height: 20, child: FittedBox(fit:BoxFit.fitWidth, child: Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit."), ), ),
недостаток описанного выше подхода заключается в том, что мы не можем контролировать минимальный и максимальный размер шрифта.
Чтобы избежать вышеуказанного недостатка. Мы можем просто использовать Text Painter и вычислить соответствующий масштабный коэффициент, как показано ниже:
Демонстрация и результаты: