将变量索引传递给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条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

将变量传递给__wakeup()

来自分类Dev

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

来自分类Dev

将变量传递给模型

来自分类Dev

如何将参数传递给DOJO中的自定义小部件?

来自分类Dev

将参数传递给QStackedWidget中的小部件的构造函数

来自分类Dev

如何将参数传递给小部件js资产?

来自分类Dev

将变量传递给函数

来自分类Dev

将Cupertino Datepicker传递给另一个小部件

来自分类Dev

Fluter / Dart如何将索引从Listview.builder传递到项目小部件

来自分类Dev

如何在Flutter中将值传递给数组内的小部件

来自分类Dev

如何正确地将值传递给Flutter中任何窗口小部件的事件处理函数?

来自分类Dev

Perl + Tk:将(滚动/列表框)小部件引用传递给子例程

来自分类Dev

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

来自分类Dev

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

来自分类Dev

无法将onTap字段传递给无状态窗口小部件

来自分类Dev

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

来自分类Dev

如何将事件类型传递给具有块模式的小部件?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

将变量传递给__wakeup()

来自分类Dev

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

来自分类Dev

如何以Python方式将参数传递给子类化小部件的方法?

来自分类Dev

我们如何将值传递给对话框小部件?

来自分类Dev

从Tkinter中的Entry小部件将参数传递给动态创建的Button

来自分类Dev

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

来自分类Dev

如何将值从主屏幕小部件传递给应用程序?

来自分类Dev

如何将数据传递给另一个小部件内的小部件

Related 相关文章

  1. 1

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

  2. 2

    将变量传递给__wakeup()

  3. 3

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

  4. 4

    将变量传递给模型

  5. 5

    如何将参数传递给DOJO中的自定义小部件?

  6. 6

    将参数传递给QStackedWidget中的小部件的构造函数

  7. 7

    如何将参数传递给小部件js资产?

  8. 8

    将变量传递给函数

  9. 9

    将Cupertino Datepicker传递给另一个小部件

  10. 10

    Fluter / Dart如何将索引从Listview.builder传递到项目小部件

  11. 11

    如何在Flutter中将值传递给数组内的小部件

  12. 12

    如何正确地将值传递给Flutter中任何窗口小部件的事件处理函数?

  13. 13

    Perl + Tk:将(滚动/列表框)小部件引用传递给子例程

  14. 14

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

  15. 15

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

  16. 16

    无法将onTap字段传递给无状态窗口小部件

  17. 17

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

  18. 18

    如何将事件类型传递给具有块模式的小部件?

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

    将变量传递给__wakeup()

  23. 23

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

  24. 24

    如何以Python方式将参数传递给子类化小部件的方法?

  25. 25

    我们如何将值传递给对话框小部件?

  26. 26

    从Tkinter中的Entry小部件将参数传递给动态创建的Button

  27. 27

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

  28. 28

    如何将值从主屏幕小部件传递给应用程序?

  29. 29

    如何将数据传递给另一个小部件内的小部件

热门标签

归档