Đây là một câu trả lời bổ sung cho thấy việc thực hiện một vài giải pháp được đề cập.
FractionallySizedBox
Nếu bạn có một widget duy nhất, bạn có thể sử dụng một FractionallySizedBox
widget để chỉ định tỷ lệ phần trăm không gian có sẵn để điền vào. Ở đây, màu xanh lá cây Container
được đặt để lấp đầy 70% chiều rộng có sẵn và 30% chiều cao có sẵn.
Widget myWidget() {
return FractionallySizedBox(
widthFactor: 0.7,
heightFactor: 0.3,
child: Container(
color: Colors.green,
),
);
}
Mở rộng
Các Expanded
widget cho phép một widget lấp đầy không gian có sẵn, theo chiều ngang nếu nó nằm trong một hàng hoặc theo chiều dọc nếu nó nằm trong một cột. Bạn có thể sử dụng flex
tài sản với nhiều vật dụng để cung cấp cho chúng trọng lượng. Ở đây màu xanh Container
chiếm 70% chiều rộng và màu vàng Container
chiếm 30% chiều rộng.
Nếu bạn muốn làm theo chiều dọc, sau đó chỉ cần thay thế Row
bằng Column
.
Widget myWidget() {
return Row(
children: <Widget>[
Expanded(
flex: 7,
child: Container(
color: Colors.green,
),
),
Expanded(
flex: 3,
child: Container(
color: Colors.yellow,
),
),
],
);
}
Mã bổ sung
Đây là main.dart
mã để bạn tham khảo.
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 ...
}