Для этого есть два подхода.

  1. Использование FittedBox
  2. Использование 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 и вычислить соответствующий масштабный коэффициент, как показано ниже:

Демонстрация и результаты: