gpt4 book ai didi

flutter - statefulWidget 无法进行所需更改的问题

转载 作者:行者123 更新时间:2023-12-02 01:24:55 30 4
gpt4 key购买 nike

我正在开发一个 statefulWidget,我的目的是确保在选择一个选项(用这种语言)之前,下一个按钮不可单击。然而它似乎不起作用,我还在代码中添加了Yaesin(回答的人)的答案

 ListView.builder(
itemCount: histoires.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(
histoires[index].title,
style: TextStyle(color: Colors.pink),
),
trailing: IconButton(
icon: Icon(Icons.play_arrow),
onPressed: () {
showDialog(
context: context,
builder: (BuildContext context) {
return StatefulBuilder(
builder: (context, setState) =>
AlertDialog(
content: Column(children: [
InkWell(
onTap: () {
_handleTap;
},
child: ListTile(
trailing: Icon(Icons
.flag_circle_rounded),
title: Text(
"French",
style: TextStyle(
color: Colors
.blueGrey),
))),
_active
? InkWell(
onTap: () {},
child: Image.asset(
"assets/nextactive.png",
height: height * 0.2,
width: width * 0.4),
)
: Image.asset(
"assets/nextinactive.png",
height: height * 0,
width: width * 0)
]),
));
});
}));
}),

最佳答案

要更新对话框 UI,您可以使用 StatefulBuilder 的 setState

 return StatefulBuilder(
builder: (context, setState) =>
AlertDialog(
content: Column(children: [

使用单独的方法时,将 StatefulBuilder 的 setState 传递给函数。对于您的情况,它将是

onPressed: () async {
await showDialog(
context: context,
builder: (BuildContext context) {
return StatefulBuilder(
builder: (context, setStateSB) => AlertDialog(
content: Column(children: [
InkWell(
onTap: () {
_handleTap(setStateSB);
},
child: ListTile(

还要确保收到此 setStateSB(已重命名以避免与状态的 setState 混淆)。

_handleTap(setStateSB){ ....

有关使用StatefulBuilder的更多信息

关于flutter - statefulWidget 无法进行所需更改的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74953986/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com