gpt4 book ai didi

flutter - 更新 Flutter 上的部分 UI

转载 作者:行者123 更新时间:2023-12-04 10:55:34 26 4
gpt4 key购买 nike

要更新整个小部件很容易,我们调用 SetState() 并进行更改,但是如果我不需要更新所有内容会怎样?

我有这个用户界面: enter image description here

当我加载该页面时,我从我的应用程序提供商处获取我的元素数组:

Widget build(BuildContext context) {
var elements = shuffle(Provider.of<GameSettings>(context).set.elements);

(取自这个答案:List.shuffle() in Dart?)

我需要 context 来获取我保存的元素列表,这就是我把它放在那里的原因。

我还有需要刷新的进度条:

void _startTimer() {
var sub = countDownTimer.listen(null);
sub.onData((duration) {
setState(() {
_current = _start + duration.elapsed.inSeconds;
});
});

sub.onDone(() {
sub.cancel();
});
}
}

但是当我刷新它时,我也在刷新我的元素。发生这种情况是因为正在调用整个小部件,所以我的 shuffle 函数。

我尝试将进度按钮移动到不同的小部件,但还是一样。怎么才能刷新这个进度呢?

最佳答案

你可以使用 StatefulBuilder()

您的代码将是:

void _startTimer() {
StatefulBuilder(
builder: (BuildContext context, setState){
var sub = countDownTimer.listen(null);
sub.onData((duration) {
setState(() {
_current = _start + duration.elapsed.inSeconds;
});
});

sub.onDone(() {
sub.cancel();
});
}
)

}

关于flutter - 更新 Flutter 上的部分 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59225626/

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