【问题标题】:Cannot figure out why my Slider won't rebuild无法弄清楚为什么我的 Slider 不会重建
【发布时间】:2021-10-10 18:43:25
【问题描述】:

首先,我是编码新手,所以请不要让我太难受。我整个星期天下午都在试图弄清楚如何完成这项工作。

基本上我想要 3 个滑块,但所有滑块的初始值都不同。我认为将代码放入构建器方法中并在小部件树中调用构建器方法 3 次以使我的代码更清洁是一个聪明的主意。

我的问题是当 setState 被调用时,它不会重建 Slider。

class _HomeScreenState extends State<HomeScreen> {
  double pomodoro = 25;
  double shortBreak = 5;
  double longBreak = 20;

  Widget _slider({
    required String name,
    required int divisions,
    required double minValue,
    required double maxValue,
    required double duration,
  }) {
    return Slider(
      min: minValue,
      max: maxValue,
      divisions: divisions,
      value: duration,
      onChanged: (newDuration) {
        setState(() => duration = newDuration);
      },
    );
  }

现在,如果我在 setState 中放入“番茄钟”而不是“持续时间”,那么一切正常并且滑块会重建,但这会使整个构建器方法过时,因为每次调用该方法时我都需要不同的初始值。我该如何完成这项工作?

【问题讨论】:

  • 请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: flutter dart


【解决方案1】:

经过4天的汗水和泪水,几乎失去理智,我终于弄清楚了我的问题所在。

首先,我的代码 sn-p 太短,缺少关键部分。基本上一切都归结为我只有一个状态对象用于所有滑块。每个滑块都需要开启状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多