【发布时间】:2021-08-22 18:40:22
【问题描述】:
我需要能够从子小部件中删除列表视图中的特定项目。然而,让这件事变得困难的是 ontap() 删除功能是在子小部件中定义的。
如何从子窗口更改父窗口小部件的状态?
父 ListView 构建器
ListView.builder(
shrinkWrap: true,
physics:
BouncingScrollPhysics(),
itemCount: snapshot
.data.datas.length,
itemBuilder:
(context, index) {
if (snapshot
.data
.datas[index]
.daysToOccurrence >=
0) {
if (_isSearching ==
false) {
return OrganizationList(
id: snapshot
.data
.datas[index]
.id);
} else {
return snapshot
.data
.datas[index]
.id
.toLowerCase()
.contains(
_searchText
.toLowerCase())
? OrganizationList(
id: snapshot
.data
.datas[
index]
.id,
)
: Container();
}
} else {
return Container();
}
}),
OrganizationList 小部件(在子小部件中定义)
Align(
alignment: Alignment.bottomLeft,
child: GestureDetector(
onTap: () async {
setState(() {
_isLoading = true;
});
await _organizationBloc
.delete(widget.id);
setState(() {
_isLoading = false;
});
},
child: Text(
"Delete",
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.black54,
),
),
))
【问题讨论】:
-
尝试 voidCallback 作为子小部件中的参数
-
好的,试一试。但这如何与流一起使用?具体来说,快照不是全局列表
-
我应该澄清一下这个 ListView.Builder 从 StreamBuilder 获取数据
标签: flutter