Dies ist eine ergänzende Antwort, die die Implementierung einiger der genannten Lösungen zeigt.
FractionallySizedBox
Wenn Sie ein einzelnes Widget haben, können Sie mithilfe eines FractionallySizedBox
Widgets einen Prozentsatz des verfügbaren zu füllenden Speicherplatzes angeben. Hier wird das Grün Container
so eingestellt, dass es 70% der verfügbaren Breite und 30% der verfügbaren Höhe ausfüllt.
Widget myWidget() {
return FractionallySizedBox(
widthFactor: 0.7,
heightFactor: 0.3,
child: Container(
color: Colors.green,
),
);
}
Erweitert
Mit dem Expanded
Widget kann ein Widget den verfügbaren Platz horizontal ausfüllen, wenn es sich in einer Zeile befindet, oder vertikal, wenn es sich in einer Spalte befindet. Sie können die flex
Eigenschaft mit mehreren Widgets verwenden, um ihnen Gewichte zu geben. Hier nimmt das Grün Container
70% der Breite und das Gelb Container
30% der Breite ein.
Wenn Sie es vertikal tun wollen, dann ersetzen Sie einfach Row
mit Column
.
Widget myWidget() {
return Row(
children: <Widget>[
Expanded(
flex: 7,
child: Container(
color: Colors.green,
),
),
Expanded(
flex: 3,
child: Container(
color: Colors.yellow,
),
),
],
);
}
Ergänzungscode
Hier ist der main.dart
Code als Referenz.
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 ...
}