问题描述
我正在使用 Flutter 的最新(空安全)版本并创建了一个构造函数。
import 'package:Flutter/material.dart';
import 'input_page.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primaryColor: Colors.lightBlue[300],//app bar ın rengi
scaffoldBackgroundColor: Colors.lightBlue[300],//scfold un body si
),home: InputPage(),);
}
}
以下代码 input_page.dart
import 'package:Flutter/material.dart';
import 'package:font_awesome_Flutter/font_awesome_Flutter.dart';
class InputPage extends StatefulWidget {
@override
_InputPageState createState() => _InputPageState();
}
class _InputPageState extends State<InputPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
'YAŞAM BEKLENTİSİ',style: TextStyle(color: Colors.black54),),centerTitle: true,body: Column(
children: <Widget>[
Expanded(
child: Row(
children: [
Expanded(
child: MyContainer(),Expanded(
child: MyContainer(),],Expanded(
child: MyContainer(),Expanded(
child: Row(
children: [
Expanded(
child: MyContainer(
child: Column(
children: <Widget>[
Icon(
(FontAwesomeIcons.venus),size: 50,color: Colors.black54,Text("KADIN"),);
}
}
class MyContainer extends StatelessWidget {
final Color color;
final Widget? child;
MyContainer({this.color = Colors.white,this.child});
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.all(12),decoration:
Boxdecoration(borderRadius: BorderRadius.circular(10),color: color),);
}
解决方法
那是因为您没有向您的 child
提供 Container
。
class MyContainer extends StatelessWidget {
final Color color;
final Widget? child;
MyContainer({this.color = Colors.white,this.child});
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.all(12),decoration: BoxDecoration(...),child: child,// <-- Missing
);
}
}