如何解决Flutter null 安全构造函数
我正在使用 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
);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。