Ceci est une réponse supplémentaire montrant la mise en œuvre de quelques-unes des solutions mentionnées.
FractionallySizedBox
Si vous avez un seul widget, vous pouvez utiliser un FractionallySizedBoxwidget pour spécifier un pourcentage de l'espace disponible à remplir. Ici, le vert Containerest configuré pour remplir 70% de la largeur disponible et 30% de la hauteur disponible.

Widget myWidget() {
return FractionallySizedBox(
widthFactor: 0.7,
heightFactor: 0.3,
child: Container(
color: Colors.green,
),
);
}
Étendu
Le Expandedwidget permet à un widget de remplir l'espace disponible, horizontalement s'il est dans une ligne, ou verticalement s'il est dans une colonne. Vous pouvez utiliser la flexpropriété avec plusieurs widgets pour leur donner des pondérations. Ici, le vert Containeroccupe 70% de la largeur et le jaune Container30% de la largeur.

Si vous voulez le faire verticalement, remplacez simplement Rowpar Column.
Widget myWidget() {
return Row(
children: <Widget>[
Expanded(
flex: 7,
child: Container(
color: Colors.green,
),
),
Expanded(
flex: 3,
child: Container(
color: Colors.yellow,
),
),
],
);
}
Code supplémentaire
Voici le main.dartcode pour votre référence.
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("FractionallySizedBox"),
),
body: myWidget(),
),
);
}
}
// replace with example code above
Widget myWidget() {
return ...
}