Il s'agit d'une réponse complémentaire montrant la mise en œuvre de quelques-unes des solutions mentionnées.
Boîte à dimensions fractionnées
Si vous n'avez qu'un seul widget, vous pouvez utiliser une balise FractionallySizedBox
pour spécifier un pourcentage de l'espace disponible à remplir. Ici, le vert Container
est réglé pour remplir 70% de la largeur et 30% de la hauteur disponibles.
Widget myWidget() {
return FractionallySizedBox(
widthFactor: 0.7,
heightFactor: 0.3,
child: Container(
color: Colors.green,
),
);
}
Élargi
Le site Expanded
permet à un widget de remplir l'espace disponible, horizontalement s'il se trouve dans une ligne, ou verticalement s'il se trouve dans une colonne. Vous pouvez utiliser la fonction flex
avec plusieurs widgets pour leur donner du poids. Ici, le vert Container
occupe 70% de la largeur et le jaune Container
prend 30% de la largeur.
Si vous voulez le faire verticalement, il suffit de remplacer Row
avec 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.dart
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 ...
}
1 votes
Je dis simplement que ce n'est généralement pas une bonne pratique, c'est de la conception web. Dans les applications, vous devez généralement utiliser les pixels de l'appareil pour définir les tailles, et utiliser Paddings pour insérer vos widgets, puisque le rapport d'aspect est presque toujours le même (sauf pour les tablettes).
27 votes
Après un an et demi de plus, il semble que ce ne soit pas une si mauvaise idée après tout. Chaque mois, de nouveaux téléphones sortent avec des proportions de plus en plus étranges.