Насправді доступні деякі варіанти:
Ви можете використовувати SizedBox.expand, щоб ваш розмір віджетів відповідав розмірам батьків, або SizedBox (ширина: double.infinity), щоб відповідати тільки ширині або SizedBox (heigth: double.infinity), щоб відповідати лише висоті.
Якщо ви хочете поведінку wrap_content, це залежить від батьківського віджета, який ви використовуєте, наприклад, якщо ви кладете кнопку на стовпець, він буде вести себе як wrap_content, а якщо використовувати match_parent, ви можете обернути кнопку розширеним віджетом або розміром.
За допомогою ListView кнопка отримує поведінку match_parent, а для отримання поведінки wrap_content можна обернути її віджетом Flex типу Row.
Використання розширеного віджету робить дочірню рядок, стовпчик або гнучку для розширення, щоб заповнити наявний простір на головній осі (наприклад, горизонтально для рядка або вертикально для стовпця).
https://docs.flutter.io/flutter/widgets/Expanded-class.html
Використання гнучкого віджета надає дитині рядка, стовпця або гнучкості для розширення, щоб заповнити наявний простір на головній осі (наприклад, горизонтально для рядка або вертикально для стовпця), але, на відміну від розширеного, гнучка не робить вимагати від дитини заповнити наявний простір.
https://docs.flutter.io/flutter/widgets/F prilagod-class.html