Ini adalah jawaban tambahan yang menunjukkan implementasi beberapa solusi yang disebutkan.
Kotak pecahan
Jika Anda memiliki satu widget, Anda dapat menggunakan FractionallySizedBoxwidget untuk menentukan persentase ruang yang tersedia untuk diisi. Di sini hijau Containerdiatur untuk mengisi 70% dari lebar yang tersedia dan 30% dari tinggi yang tersedia.

Widget myWidget() {
return FractionallySizedBox(
widthFactor: 0.7,
heightFactor: 0.3,
child: Container(
color: Colors.green,
),
);
}
Diperluas
The Expandedwidget memungkinkan widget untuk mengisi ruang yang tersedia, horizontal jika berturut-turut, atau vertikal jika berada dalam kolom. Anda dapat menggunakan flexproperti dengan beberapa widget untuk memberi mereka bobot. Di sini hijau Containermengambil 70% dari lebar dan kuning Containermengambil 30% dari lebar.

Jika Anda ingin melakukannya secara vertikal, maka ganti saja Rowdengan Column.
Widget myWidget() {
return Row(
children: <Widget>[
Expanded(
flex: 7,
child: Container(
color: Colors.green,
),
),
Expanded(
flex: 3,
child: Container(
color: Colors.yellow,
),
),
],
);
}
Kode tambahan
Ini main.dartkode untuk referensi Anda.
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 ...
}