Questa è una risposta supplementare che mostra l'implementazione di un paio delle soluzioni menzionate.
FractionallySizedBox
Se si dispone di un singolo widget, è possibile utilizzare un FractionallySizedBox
widget per specificare una percentuale dello spazio disponibile da riempire. Qui il verde Container
è impostato per riempire il 70% della larghezza disponibile e il 30% dell'altezza disponibile.
Widget myWidget() {
return FractionallySizedBox(
widthFactor: 0.7,
heightFactor: 0.3,
child: Container(
color: Colors.green,
),
);
}
allargato
Il Expanded
widget consente a un widget di riempire lo spazio disponibile, in orizzontale se si trova in una riga o in verticale se si trova in una colonna. È possibile utilizzare la flex
proprietà con più widget per assegnare loro pesi. Qui il verde Container
occupa il 70% della larghezza e il giallo Container
occupa il 30% della larghezza.
Se vuoi farlo verticalmente, sostituiscilo 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,
),
),
],
);
}
Codice supplementare
Ecco il main.dart
codice per il tuo riferimento.
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 ...
}