Vous pourriez essayer d'envelopper votre widget AlertDialog avec le widget ConstrainedBox comme suggéré dans aquí et définissez la valeur que vous souhaitez pour le paramètre maxWidth.
MISE À JOUR
Je viens de regarder le code du parent du widget AlertDialog qui est le widget Dialog et j'ai découvert qu'il a enveloppé son enfant avec un widget ConstrainedBox avec une largeur minimale de 280 pixels. C'est la raison pour laquelle nous ne pouvons pas modifier la largeur du widget AlertDialog.
Heureusement, il y a deux choses que nous pouvons faire. La première option consiste à modifier la largeur minimale par défaut du widget Dialog dans le fichier dialog.dart. Notez que ce changement affectera tous vos projets Flutter qui utilisent le widget Dialog.
//inside dialog.dart
class Dialog extends StatelessWidget {
...
@override
Widget build(BuildContext context) {
final DialogTheme dialogTheme = DialogTheme.of(context);
return AnimatedPadding(
padding: MediaQuery.of(context).viewInsets + const EdgeInsets.symmetric(horizontal: 40.0, vertical: 24.0),
duration: insetAnimationDuration,
curve: insetAnimationCurve,
child: MediaQuery.removeViewInsets(
removeLeft: true,
removeTop: true,
removeRight: true,
removeBottom: true,
context: context,
child: Center(
child: ConstrainedBox(
constraints: const BoxConstraints(minWidth: 280.0), // You can set your desired value for minWidth here
child: Material(
elevation: 24.0,
...
Vous pouvez alors utiliser l'AlertDialog comme suit :
showDialog(
context: context,
builder: (_) => AlertDialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0))
),
contentPadding: EdgeInsets.all(0.0),
content: ProductPreviewScreen(),
)
)
);
L'autre moyen serait de créer notre propre dialogue de personnalisation.
showDialog(
context: context,
builder: (_) => Center( // Aligns the container to center
child: Container( // A simplified version of dialog.
width: 100.0,
height: 56.0,
color: Colors.pink,
)
)
);