android - Flutter GridView.builder 如何更新
问题描述
我正在尝试使用一张GriView
卡片构建一个 Flutter 应用程序,并且每次点击floatingActionButton
. 但是如何更新我的观点?我知道这些项目已添加到我的列表中,但GridView
没有显示更改。
List<Widget> cardsList = [];
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: AppBar(
title: Text('Team Kitty'),
),
body: GridView.builder(
itemCount: cardsList.length,
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3),
itemBuilder: (BuildContext context, int index) {
return Container(child: cardsList[index]);
}),
floatingActionButton: new FloatingActionButton(
onPressed: addCard(),
tooltip: 'Add Card',
child: new Icon(Icons.add),
),
);
}
addCard() {
setState(() {
cardsList.add(_RobotCard());
});
}
}
我发现很难找到好的网格文档,也许有人有提示?
谢谢大家
解决方案
您在构建小部件时调用addCard方法,而不是将方法的引用作为onPressed
参数传递:
floatingActionButton: new FloatingActionButton(
onPressed: addCard, // pass method reference here
tooltip: 'Add Card',
child: new Icon(Icons.add),
)
推荐阅读
- angular - RXJS AngularFire - 从 Observable 获取 Observables
- android - 如果添加其他嵌套视图,ConstraintLayout 中的 RecyclerView 总是覆盖底部
- java - Java 中的重载、覆盖和绑定
- php - 如何将一个数组的值分配给PHP中不同数组中的变量
- r - 如何读取下载的 rds 文件
- typescript - 打字稿如何更新每个对象值
- algorithm - 有什么问题不能通过蛮力方法解决吗?
- r - dplyr 在链中使用 $ 获取最终值,例如 mtcars %>% select(mpg)$mpg
- python-3.x - 用其他东西替换应用逻辑
- graph - Graphviz 点集纵横比(16:9、4:3 等)