Flutter 为什么在颤振上显示红色层

Flutter 为什么在颤振上显示红色层,flutter,Flutter,我正在创建一个日历小部件。 我们在星期几的行标题中添加了一个用Expanded包装的装饰框。 为什么使用“展开”时会显示红色层 排除展开后,装饰框不会展开 class CalenderPage扩展StatefulWidget{ @凌驾 _CalenderPageState createState()=>new_CalenderPageState(); } 类_CalenderPageState扩展状态{ DateTime now=新的DateTime.now(); @凌驾 小部件构建(构建上下

我正在创建一个日历小部件。 我们在星期几的行标题中添加了一个用Expanded包装的装饰框。 为什么使用“展开”时会显示红色层

排除展开后,装饰框不会展开

class CalenderPage扩展StatefulWidget{
@凌驾
_CalenderPageState createState()=>new_CalenderPageState();
}
类_CalenderPageState扩展状态{
DateTime now=新的DateTime.now();
@凌驾
小部件构建(构建上下文){
归还新脚手架(
appBar:新的appBar(
标题:新文本(“日历”),
),
正文:新中心(
子项:新列(子项:[
新行(
mainAxisAlignment:mainAxisAlignment.space,
子项:_createWeekOfDays()),
]),
),
);
}
列表_createWeekOfDays(){
列表_weekOfDays=新列表();
(最后一周[‘周一’、‘周二’、‘周三’、‘周四’、‘周五’、‘周六’、‘太阳’、]){
_weekOfDays.add(
新扩展(
孩子:新装饰的盒子(
位置:DecorationPosition.background,
装饰:新盒子装饰(
边界:新边界(
颜色:主题。背景。分割颜色,宽度:1.0),
),
孩子:新的填充物(
填充:仅限新边缘组(顶部:8.0,底部:8.0),
儿童:新文本(
星期一,
样式:新文本样式(fontWeight:fontWeight.bold),
textAlign:textAlign.center,
),
),
),
),
);
}
返回时间(周);;
}
}

这是一个溢出问题

您可以将
包装在固定的
宽度
容器中

body: new Center(
        child: new Column(children: <Widget>[
          new Container(
            width: 320.0,
          child: new Row(
            mainAxisSize: MainAxisSize.min,
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: _createWeekOfDays())),
        ]),
      ),
或者,您可以使用
列表视图
并指定
容器的大小
,以便显示整个视图而无需滚动,但此处您需要稍微修改布局的设计

我添加了一段代码,可能对您有所帮助:

@覆盖
小部件构建(构建上下文){
归还新脚手架(
appBar:新的appBar(
标题:新文本(“日历”),
),
主体:新容器(
身高:50.0,
子:新列表视图(
滚动方向:轴水平,
子项:新列表。生成(7,(int索引){
归还新卡(
子容器:新容器(
宽度:43.0,
身高:30.0,
孩子:新中心(
子项:新文本(_daysOfWeek(索引)),
),
);
}),
),
),
);
}
_daysOfWeek(整数索引){
列表myWeek=新列表(7);
myWeek=[周一、周二、周三、周四、周五、周六、周日];
返回myWeek[索引];
}
}

这是一个溢出问题

您可以将
包装在固定的
宽度
容器中

body: new Center(
        child: new Column(children: <Widget>[
          new Container(
            width: 320.0,
          child: new Row(
            mainAxisSize: MainAxisSize.min,
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: _createWeekOfDays())),
        ]),
      ),
或者,您可以使用
列表视图
并指定
容器的大小
,以便显示整个视图而无需滚动,但此处您需要稍微修改布局的设计

我添加了一段代码,可能对您有所帮助:

@覆盖
小部件构建(构建上下文){
归还新脚手架(
appBar:新的appBar(
标题:新文本(“日历”),
),
主体:新容器(
身高:50.0,
子:新列表视图(
滚动方向:轴水平,
子项:新列表。生成(7,(int索引){
归还新卡(
子容器:新容器(
宽度:43.0,
身高:30.0,
孩子:新中心(
子项:新文本(_daysOfWeek(索引)),
),
);
}),
),
),
);
}
_daysOfWeek(整数索引){
列表myWeek=新列表(7);
myWeek=[周一、周二、周三、周四、周五、周六、周日];
返回myWeek[索引];
}
}
body: new Center(
        child: new Column(children: <Widget>[
          new Padding(
              padding: const EdgeInsets.only(right: 3.0),
              child: new Row(
                  mainAxisSize: MainAxisSize.min,
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  children: _createWeekOfDays())),
        ]),
      ),
@override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text('Calender'),
      ),
      body: new Container(
          height: 50.0,
          child: new ListView(
            scrollDirection: Axis.horizontal,
            children: new List.generate(7, (int index) {
              return new Card(
                child: new Container(
                      width: 43.0,
                      height: 30.0,
                      child: new Center(
                          child: new Text(_daysOfWeek(index))),
                    ),
              );
            }),
          ),
        ),
    );
  }
    _daysOfWeek(int index) {
    List myWeek = new List<String>(7);
    myWeek = ['Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sat', 'Sun',];
    return myWeek[index];
  }
}