Flutter 具有多个滚动方向的颤振列表视图
我有一个按天计小时的时间表Flutter 具有多个滚动方向的颤振列表视图,flutter,Flutter,我有一个按天计小时的时间表 Widget\u构建计划(ScheduleLoaded状态){ 最终列表天数=state.range.days.map((DateTime-day){ 返回列( 儿童: _BuildTimeslot(天、州、Timeslot.toList()), ); }).toList(); 返回列表视图(滚动方向:Axis.horizontal,子项:天); } 现在我正试图让它也可以垂直滚动(按天或全屏幕分别滚动) Widget\u构建计划(ScheduleLoaded状态
Widget\u构建计划(ScheduleLoaded状态){
最终列表天数=state.range.days.map((DateTime-day){
返回列(
儿童:
_BuildTimeslot(天、州、Timeslot.toList()),
);
}).toList();
返回列表视图(滚动方向:Axis.horizontal,子项:天);
}
现在我正试图让它也可以垂直滚动(按天或全屏幕分别滚动)
Widget\u构建计划(ScheduleLoaded状态){
最终列表天数=state.range.days.map((DateTime-day){
返回列表视图(
收缩膜:对,
物理:ClampingScrollPhysics(),
子项:\u构建时隙(天、州、时隙、toList())
);
}).toList();
返回列表视图(滚动方向:Axis.horizontal,子项:天);
}
根据嵌套的ListView上的相关答案,带有
包覆面处理和夹持的ScrollPhysics
应该可以工作,但是第二个版本不能用错误呈现“constraints.hasbundedWidth”:不正确。下面的代码给出了如果您的时段具有固定宽度,您需要的内容。如果我误解了你的需要,请纠正我
Widget _buildSchedule() {
return ListView(
scrollDirection: Axis.horizontal,
children: List<int>.generate(10, (i) => i).map((i) {
return Container(
width: 200.0,
child: ListView(
//shrinkWrap: true,
//physics: ClampingScrollPhysics(),
scrollDirection: Axis.vertical,
children: List<int>.generate(Random().nextInt(20) + 1, (i) => i).map((j) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
color: Colors.grey,
padding: const EdgeInsets.all(8.0),
child: Text(
"$j item of $i row"
)
),
);
}).toList()
),
);
}).toList()
);
}
Widget\u buildSchedule(){
返回列表视图(
滚动方向:轴水平,
子项:List.generate(10,(i)=>i.map((i){
返回容器(
宽度:200.0,
子:ListView(
//收缩膜:对,
//物理:ClampingScrollPhysics(),
滚动方向:轴垂直,
子项:List.generate(Random().nextInt(20)+1,(i)=>i.map((j){
返回填充(
填充:常数边集全部(8.0),
子:容器(
颜色:颜色。灰色,
填充:常数边集全部(8.0),
子:文本(
“$i行的$j项”
)
),
);
})托利斯先生()
),
);
})托利斯先生()
);
}
Widget _buildSchedule(ScheduleLoaded state) {
final List<Widget> days = state.range.days.map((DateTime day) {
return ListView(
shrinkWrap: true,
physics: ClampingScrollPhysics(),
children: _buildTimeSlots(day, state.timeSlots.toList())
);
}).toList();
return ListView( scrollDirection: Axis.horizontal, children: days);
}
Widget _buildSchedule() {
return ListView(
scrollDirection: Axis.horizontal,
children: List<int>.generate(10, (i) => i).map((i) {
return Container(
width: 200.0,
child: ListView(
//shrinkWrap: true,
//physics: ClampingScrollPhysics(),
scrollDirection: Axis.vertical,
children: List<int>.generate(Random().nextInt(20) + 1, (i) => i).map((j) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
color: Colors.grey,
padding: const EdgeInsets.all(8.0),
child: Text(
"$j item of $i row"
)
),
);
}).toList()
),
);
}).toList()
);
}