我正在制作一个页面,其中包含一些相互交互的保管箱和一个 Futurebuilder 包装的 ListView。
当 Dropbox 发生更改并单击复选框时,我会调用“setState”。但是,由于checkbox的onChanged中的setState,Futurebuilder不断被调用,ListView被重建。因此,当单击复选框时,整个列表视图都会闪烁,如下视频所示。
我想保留列表视图并仅更新复选框。有人可以帮助我吗?谢谢。
完整的代码是
class _StatefulDialogWidgetState extends State<StatefulDialogWidget> {
....
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Dropdown's
Dropdown(0, widget.ReceiveArgs, _lListOfDepthList),
Dropdown(1, widget.ReceiveArgs, _lListOfDepthList),
Dropdown(2, widget.ReceiveArgs, _lListOfDepthList),
Dropdown(3, widget.ReceiveArgs, _lListOfDepthList),
Dropdown(4, widget.ReceiveArgs, _lListOfDepthList),
// Listview with FutureBuilder
AptListview(),
],
);
}
Run Code Online (Sandbox Code Playgroud)
列表视图代码
Widget AptListview() {
return FutureBuilder<List<String>>(
future: AptNameListView(widget.ReceiveArgs),
builder: (context, snapshot) {
if (_bLastDepth == false) {
return Text("Select Address");
} else {
if (snapshot.hasData == false || snapshot.data.isEmpty …Run Code Online (Sandbox Code Playgroud)