Flutter 我怎样才能在日历上的某一天更改页面颤振
我正在制作一个日历应用程序,我希望能够根据日期的不同,在Flutter 我怎样才能在日历上的某一天更改页面颤振,flutter,datetime,calendar,widget,Flutter,Datetime,Calendar,Widget,我正在制作一个日历应用程序,我希望能够根据日期的不同,在水平滚动视图中推送日历的日期以改变页面。我怎么做?Im使用表格日历小部件 我使用的软件包有: import 'package:flutter/material.dart'; import 'package:intl/date_symbol_data_local.dart'; import 'package:intl/intl.dart'; import 'package:mrplan/widgets/back_button.dart'; i
水平滚动视图中推送日历的日期以改变页面。我怎么做?Im使用表格日历
小部件
我使用的软件包有:
import 'package:flutter/material.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'package:intl/intl.dart';
import 'package:mrplan/widgets/back_button.dart';
import 'package:mrplan/widgets/task_container.dart';
import 'package:table_calendar/table_calendar.dart';
import 'dart:io';
我尝试过这种编码,但不起作用:
class CalendarPage1 extends StatefulWidget {
@override
_CalendarPage1State createState() => _CalendarPage1State();
}
PageController pageController = PageController(initialPage: _currentIndex,
);
class _CalendarPage1State extends State<CalendarPage1> {
Widget build(BuildContext context) {
return Center(
child: Container(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Card(
clipBehavior: Clip.antiAlias,
margin: const EdgeInsets.all(8.0),
child: TableCalendar(
calendarController: calendarcontrollera,
availableCalendarFormats: const{
CalendarFormat.month: 'mes',
CalendarFormat.week: 'semana',
CalendarFormat.twoWeeks: 'dos semanas'
},
initialCalendarFormat: CalendarFormat.week,
calendarStyle: CalendarStyle(
todayColor: Colors.blue[800],
selectedColor: Colors.grey,
todayStyle: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 18.0
)
),
headerStyle: HeaderStyle(
formatButtonVisible: false,
formatButtonPadding: EdgeInsets.symmetric(horizontal: 0.0),
formatButtonTextStyle: TextStyle(
locale: Locale('fr', 'CH')
),
centerHeaderTitle: true,
formatButtonDecoration: BoxDecoration(
borderRadius: BorderRadius.circular(20.0)
)
),
startingDayOfWeek: StartingDayOfWeek.monday,
onDaySelected: (date, events, eventos){
pageController.animateToPage(_currentIndex, duration: (Duration(milliseconds: 500)), curve: Curves.ease);
},
builders: CalendarBuilders(
selectedDayBuilder: (context,date, events) =>
Container(
margin: const EdgeInsets.all(4.0),
alignment: Alignment.center,
decoration: BoxDecoration(
color: Theme.of(context).primaryColor,
shape: BoxShape.circle,),
child: Text
(date.day.toString(), style: TextStyle(
color: Colors.white
)),
),
todayDayBuilder: (context, date, events)=>
Container(
margin: const EdgeInsets.all(4.0),
alignment: Alignment.center,
decoration: BoxDecoration(
color: Colors.grey,
shape: BoxShape.circle,),
child: Text
(date.day.toString(), style: TextStyle(
color: Colors.white
)),
),
),
),
)
,]
)
)
)
);
}
}
class CalendarPage1扩展了StatefulWidget{
@凌驾
_CalendarPage1State createState()=>\u CalendarPage1State();
}
PageController PageController=PageController(初始页:_currentIndex,
);
类_CalendarPage1State扩展状态{
小部件构建(构建上下文){
返回中心(
子:容器(
子:SingleChildScrollView(
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
卡片(
clipBehavior:Clip.antiAlias,
边距:所有常数边集(8.0),
孩子:台历(
calendarController:calendarcontrollera,
availableCalendarFormats:const{
CalendarFormat.month:“mes”,
CalendarFormat.week:'semana',
CalendarFormat.twoWeeks:“dos semanas”
},
initialCalendarFormat:CalendarFormat.week,
calendarStyle:calendarStyle(
今天的颜色:颜色。蓝色[800],
selectedColor:Colors.grey,
今日风格:文本风格(
fontWeight:fontWeight.bold,
字体大小:18.0
)
),
headerStyle:headerStyle(
formatButtonVisible:false,
FormatButton添加:边集。对称(水平:0.0),
formatButtonTextStyle:TextStyle(
语言环境:语言环境('fr','CH')
),
是的,
FormatButton装饰:盒子装饰(
边界半径:边界半径。圆形(20.0)
)
),
星期一开始:星期一开始,
onDaySelected:(日期、事件、事件){
pageController.animateToPage(_currentIndex,duration:(duration(毫秒:500)),curve:Curves.ease);
},
生成器:日历生成器(
selectedDayBuilder:(上下文、日期、事件)=>
容器(
边距:所有常数边集(4.0),
对齐:对齐.center,
装饰:盒子装饰(
颜色:主题。背景。原色,
形状:长方形。圆形,),
子:文本
(date.day.toString(),样式:TextStyle(
颜色:颜色。白色
)),
),
todayDayBuilder:(上下文、日期、事件)=>
容器(
边距:所有常数边集(4.0),
对齐:对齐.center,
装饰:盒子装饰(
颜色:颜色。灰色,
形状:长方形。圆形,),
子:文本
(date.day.toString(),样式:TextStyle(
颜色:颜色。白色
)),
),
),
),
)
,]
)
)
)
);
}
}