Đâ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 FractionallySizedBoxwidget để 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 Expandedwidget 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 flextà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 Containerchiếm 70% chiều rộng và màu vàng Containerchiế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ế Rowbằ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.dartmã để 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 ...
}