Esta es una respuesta complementaria que muestra la implementación de un par de las soluciones mencionadas.
FractionallySizedBox
Si tiene un único widget, puede usar un FractionallySizedBox
widget para especificar un porcentaje del espacio disponible para llenar. Aquí el verde Container
está configurado para llenar el 70% del ancho disponible y el 30% de la altura disponible.
Widget myWidget() {
return FractionallySizedBox(
widthFactor: 0.7,
heightFactor: 0.3,
child: Container(
color: Colors.green,
),
);
}
Expandido
El Expanded
widget permite que un widget llene el espacio disponible, horizontalmente si está en una fila, o verticalmente si está en una columna. Puede usar la flex
propiedad con múltiples widgets para darles peso. Aquí el verde Container
toma el 70% del ancho y el amarillo Container
toma el 30% del ancho.
Si desea hacerlo verticalmente, simplemente reemplácelo Row
con Column
.
Widget myWidget() {
return Row(
children: <Widget>[
Expanded(
flex: 7,
child: Container(
color: Colors.green,
),
),
Expanded(
flex: 3,
child: Container(
color: Colors.yellow,
),
),
],
);
}
Código suplementario
Aquí está el main.dart
código para su referencia.
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 ...
}