将变量索引传递给Flutter小部件

西蒙妮

我是新手,我正在尝试构建类似于日历的视图。

我正在使用一些逻辑来生成以行显示的星期列表,它们本身就是天列表(基本窗口小部件)。

我遇到了一个障碍,该障碍将一个简单的索引传递给单个Day小部件,以便显示日期。

虽然我已经学会了如何通过它们的构造函数将它们本身传递给小部件:CalendarDay({this.monthDay});,但Dart一直抱怨说,由于它们是通过逻辑生成的,因此索引值不是常数。

我用来生成CalendarDay小部件列表列表的逻辑:

    for(int rows =1,daysAdded=1; rows<=7;rows++) {
      for(int y=1;y<=7;y++){
        if(rows > 1 || y >= firstOfMonthWeekday){
          print("Adding day $daysAdded to week nr. $rows");
          final String str = daysAdded.toString();

          // This is where I try to pass the index to the CalendarDay Widget
          weeklyRow.add(new CalendarDay(monthDay: str)); 
          daysAdded++;
          if(daysAdded>daysInThisMonth){
            done = true;
            break;
          }
        }
      }
      monthWeeksDays.add(weeklyRow);
      weeklyRow = [];
      print('Days in week $rows: ${monthWeeksDays[rows-1].length}');
      if(done)
        break;
    }

CalendarDay小部件本身:

class CalendarDay extends StatelessWidget {
  final String monthDay;
  CalendarDay({this.monthDay});

  @override
  Widget build(BuildContext context) {
    final double screenWidth = MediaQuery.of(context).size.width;
    return SizedBox(
      width: screenWidth/7,
      height: screenWidth/7,
      child: const DecoratedBox(
        decoration: BoxDecoration( color: Colors.blue),
        child: Center(
          child: Text(monthDay),
        ),
      ),
    );
  }
}

我已经尝试过将CalendarDay转换为StatefulWidget,以查看是否可以让我使用一个非常量值,但是即使我从类声明中删除了final关键字,它仍要求该值保持常量。

除了没有索引之外,我不确定如何继续,如果有人可以指出我解决问题的方法,我显然愿意亲自研究。谢谢。

西蒙妮

我是个白痴,我复制了一些代码以创建彩色框作为占位符,花了多个小时才注意到我将DecoratedBox声明为const

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将变量传递给子小部件 FLUTTER

Flutter/Dart:将参数传递给有状态小部件?

在 Flutter 中如何将值传递给小部件

将参数传递给Flutter中的无状态小部件

使用变量将选项传递给Tkinter小部件

将变量从有状态小部件传递给状态

如何将变量作为参数传递给小部件二,在那里修改它,并将修改后的值返回给小部件一,Flutter

将列表索引数据传递给有状态小部件以动态加载 PDF 文档

处理将数据传递给小部件以缩短 Flutter / dart 中复杂布局的最佳方法?

Flutter 将手势检测细节传递给下层 Stack 小部件

将 MaterialPageRoute 中的变量传递给自定义小部件

如何在Flutter中将参数传递给小部件

如何创建对象列表以传递给Flutter中的小部件?

将方法作为参数传递给小部件

如何将QEvents传递给子窗口小部件?

将小部件输入传递给 DatabaseHelperSource 文件

将API(模型类)传递给小部件

将值传递给上一个小部件

将数据传递给有状态的小部件

Django将模型传递给ModelForm中的小部件

将参数传递给可重用的小部件

QTest无法将事件传递给子窗口小部件

Blogspot模板:将小部件输出传递给javascript

durandal,在导航期间将参数传递给小部件

在flutter中将对象传递给小部件还是将对象的各个属性传递给小部件更好

flutter变量未在类小部件中传递

dart有状态小部件将数据传递给状态错误:小部件为null

将函数传递给窗口小部件工厂窗口小部件,而不执行它

如何将 context.read 传递给 Flutter 中的子小部件?潜在的 BuildContext 错误问题