Flutter 如何在flatter中根据需要动态插入和删除小部件?
这个问题很常见。然而,我试图通过点击按钮向列中添加一个容器来模拟该事件。但是,容器未添加到列中或未在屏幕上渲染。 除此之外,setState方法还显示一条警告,表示它未被引用 这是密码Flutter 如何在flatter中根据需要动态插入和删除小部件?,flutter,flutter-layout,flutter-animation,flutter-test,Flutter,Flutter Layout,Flutter Animation,Flutter Test,这个问题很常见。然而,我试图通过点击按钮向列中添加一个容器来模拟该事件。但是,容器未添加到列中或未在屏幕上渲染。 除此之外,setState方法还显示一条警告,表示它未被引用 这是密码 import 'package:flutter/material.dart'; import 'package:focus7/Configurations/size_config.dart'; class Demo2 extends StatefulWidget { @override _Demo2St
import 'package:flutter/material.dart';
import 'package:focus7/Configurations/size_config.dart';
class Demo2 extends StatefulWidget {
@override
_Demo2State createState() => _Demo2State();
}
class _Demo2State extends State<Demo2> {
List<Widget> containersList = [
Container(
color: Colors.amberAccent,
height: 100,
width: 200,
),
Container(
color: Colors.red,
height: 100,
width: 200,
),
Container(
color: Colors.brown,
height: 100,
width: 200,
),
Container(
color: Colors.green,
height: 100,
width: 200,
),
];
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(children: <Widget>[
...containersList,
RaisedButton(
onPressed: () {
setState() => containersList.add(Container(
color: Colors.lightBlue,
height: 100,
width: 200,
));
},
child: Text("click"),
)
]),
));
}
}
导入“包装:颤振/材料.省道”;
导入“package:focus7/Configurations/size_config.dart”;
类Demo2扩展了StatefulWidget{
@凌驾
_Demo2State createState()=>_Demo2State();
}
类_Demo2State扩展状态{
列表容器列表=[
容器(
颜色:Colors.amberAccent,
身高:100,
宽度:200,
),
容器(
颜色:颜色,红色,
身高:100,
宽度:200,
),
容器(
颜色:Colors.brown,
身高:100,
宽度:200,
),
容器(
颜色:颜色。绿色,
身高:100,
宽度:200,
),
];
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:安全区(
子项:列(子项:[
…集装箱名单,
升起的按钮(
已按下:(){
setState()=>containersList.add(容器(
颜色:颜色。浅蓝色,
身高:100,
宽度:200,
));
},
子项:文本(“单击”),
)
]),
));
}
}
以下是输出:
问题在于您使用的是箭头函数,这意味着无论您在右边写什么,都会返回一些东西,并且您没有将其分配给任何不是实际需求的变量,这就是为什么它会显示错误 在解决问题时,将设置状态替换为以下设置状态
setState(() {
containersList.add(Container(
color: Colors.lightBlue,
height: 100,
width: 200,
));
});
嘿,谢谢你的回复,它工作得很好。