En realidad, hay algunas opciones disponibles:
Puede usar SizedBox.expand para hacer que su widget coincida con las dimensiones de los padres, o SizedBox (ancho: double.infinity) para que coincida solo con el ancho o SizedBox (heigth: double.infinity) para que coincida solo con la altura.
Si desea un comportamiento de wrap_content, depende del widget principal que esté utilizando, por ejemplo, si coloca un botón en una columna, se comportará como wrap_content y, para usarlo como match_parent, puede envolver el botón con un widget expandido o una caja de tamaño.
Con ListView, el botón obtiene un comportamiento match_parent y para obtener un comportamiento wrap_content, puede envolverlo con un widget Flex como Row.
El uso de un widget expandido hace que un elemento secundario de una fila, columna o flex se expanda para llenar el espacio disponible en el eje principal (por ejemplo, horizontalmente para una fila o verticalmente para una columna).
https://docs.flutter.io/flutter/widgets/Expanded-class.html
El uso de un widget flexible le da a un hijo de una fila, columna o flex la flexibilidad de expandirse para llenar el espacio disponible en el eje principal (p. Ej., Horizontalmente para una fila o verticalmente para una columna), pero, a diferencia de Expandido, Flexible no lo hace. requiera que el niño llene el espacio disponible.
https://docs.flutter.io/flutter/widgets/Flexible-class.html