Ini adalah jawaban tambahan yang menunjukkan implementasi beberapa solusi yang disebutkan.
Kotak pecahan
Jika Anda memiliki satu widget, Anda dapat menggunakan FractionallySizedBox
widget untuk menentukan persentase ruang yang tersedia untuk diisi. Di sini hijau Container
diatur 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 Expanded
widget memungkinkan widget untuk mengisi ruang yang tersedia, horizontal jika berturut-turut, atau vertikal jika berada dalam kolom. Anda dapat menggunakan flex
properti dengan beberapa widget untuk memberi mereka bobot. Di sini hijau Container
mengambil 70% dari lebar dan kuning Container
mengambil 30% dari lebar.
Jika Anda ingin melakukannya secara vertikal, maka ganti saja Row
dengan 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.dart
kode 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 ...
}