实际上我正在做一个github项目,我下载了它并在上面练习,但是我一直在选择我用循环来列出日期的日期,但是当我点击它的时候,它并没有选择这些日期,只有第一个日期已经被选择了,而其他日期没有选择。
莱梅我们看看输出:这里是我试图选择的日期,但没有发生任何事情,也与学习者的类别和时间太如果你能帮助我的日期,我可以理解的问题,并解决其他太。谢谢!
也请原谅我糟糕的英语语法。
下面是主体部分:
body: Column(
children: [
Row(
children: [
Container(
width: 200,
height: 260,
child: Stack(
children: [
Positioned(
left: 0,
top: 0,
child: Container(
width: 200,
height: 240,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage('asset/images/iconBg.png'),
fit: BoxFit.contain)),
),
),
Positioned(
bottom: 0,
left: 20,
child: Hero(
tag: "boy2",
child: Container(
height: 220,
width: 200,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage('asset/images/boy2.png'))),
),
),
)
],
),
),
Expanded(
child: Container(
padding: EdgeInsets.all(20),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
"Mr. Muneeb",
style: TextStyle(
fontSize: 21,
fontWeight: FontWeight.w700,
fontFamily: 'product'),
),
SizedBox(
height: 5,
),
Text(
"React Native",
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
color: darkBlue,
fontFamily: 'circe'),
),
SizedBox(
height: 15,
),
Row(
children: [
Container(
height: 20,
width: 20,
child: RotatedBox(
quarterTurns: 2,
child: Icon(
Icons.star,
color: darkBlue,
),
),
),
SizedBox(
width: 5,
),
Text(
"4.9 Star Rating",
style: TextStyle(fontFamily: 'circe'),
)
],
),
SizedBox(
height: 10,
),
Row(
children: [
Container(
height: 20,
width: 20,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(
'asset/images/palette.png'))),
),
SizedBox(
width: 5,
),
Text(
"5 Years Experience",
style: TextStyle(fontFamily: 'circe'),
)
],
),
],
),
),
)
],
),
Expanded(
child: Container(
width: MediaQuery.of(context).size.width,
padding: EdgeInsets.all(30),
color: Colors.white,
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
"About Muneeb",
style: TextStyle(
fontWeight: FontWeight.w700,
fontSize: 17,
fontFamily: 'product'),
),
SizedBox(
height: 10,
),
Text(
"I have been working on a React Native in a industry for almost 5 years working as a front-end developer, I can insure that i can teach you the best methods of working on a react native.",
style: TextStyle(
fontFamily: 'circe',
fontSize: 12,
),
),
SizedBox(
height: 20,
),
Text(
"Courses by Muneeb",
style: TextStyle(
fontWeight: FontWeight.w700,
fontSize: 17,
fontFamily: 'product'),
),
SizedBox(
height: 10,
),
Container(
height: 100,
width: MediaQuery.of(context).size.width,
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
children: [
courseWidget("icon1", "Young \nLearners",
"GRADE 0-1", lightBlue, darkBlue),
courseWidget("icon2", "Creative \nBloomers",
"GRADE 0-2", yellow, Color(0xff4d4d4d)),
courseWidget("icon3", "Early \nAchievers",
"GRADE 0-3", pink, Color(0xff4a155f))
],
),
),
),
SizedBox(
height: 20,
),
Text(
"Availability",
style: TextStyle(
fontWeight: FontWeight.w700,
fontSize: 17,
fontFamily: 'product'),
),
SizedBox(
height: 10,
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
for (int i = 0; i < 7; i++) dateWidget(i),
],
),
SizedBox(
height: 10,
),
Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
children: [
timeSlotWidget("11:00 AM", false),
timeSlotWidget("12:00 PM", false),
timeSlotWidget("01:00 PM", false),
timeSlotWidget("03:00 PM", true),
],
),
Row(
children: [
timeSlotWidget("04:00 PM", false),
timeSlotWidget("06:00 PM", false),
],
),
],
),
)
],
),
),
),
),
下面是日期小部件:
InkWell dateWidget(int i) {
DateTime tempDate = DateTime.now().add(Duration(days: i));
return InkWell(
onTap: () {},
child: Container(
margin: EdgeInsets.all(2),
height: 60,
width: MediaQuery.of(context).size.width * 0.11,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(10)),
color: (selectedDate == tempDate.day)
? yellow
: lightBlue.withOpacity(0.5),
),
child: Container(
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
dayValue(tempDate.weekday),
style: TextStyle(fontSize: 10),
),
Text(
tempDate.day.toString(),
style: TextStyle(fontSize: 18, fontWeight: FontWeight.w500),
)
],
),
),
),
);
}
1条答案
按热度按时间0sgqnhkj1#
根据所提供的少量信息;
我建议使用ListView Builder代替小部件树中的row和for循环,它将更有效地实现您的目标。
例如:
我希望这能给你一个如何去做的想法。