问题描述
cupertinoTimepicker 在颤振中没有正确显示
我编写了 cupertinoTimerpicker 代码,但无法正确显示
在我看来,我混合了一些功能,因此无法看到这个cupertinoTimePicker。
我该怎么办?
class CountDownTimer extends StatefulWidget {
@override
_CountDownTimerState createState() => _CountDownTimerState();
}
class _CountDownTimerState extends State<CountDownTimer>
with TickerProviderStateMixin {
AnimationController controller;
Duration initialtimer = new Duration();
int selectitem = 1;
String get timerString {
Duration duration = controller.duration * controller.value;
return '${duration.inMinutes}:${(duration.inSeconds % 60).toString().padLeft(2,'0')}';
}
@override
void initState() {
super.initState();
controller = AnimationController(
vsync: this,duration: Duration(seconds: 600),);
}
Widget timePicker() {
return CupertinoTimerPicker(
mode: CupertinoTimerPickerMode.hms,minuteInterval: 1,secondInterval: 1,initialTimerDuration: initialtimer,onTimerDurationChanged: (Duration changedtimer) {
setState(() {
initialtimer = changedtimer;
time =
(changedtimer.inMinutes % 60).toString() +
' mins ' +
(changedtimer.inSeconds % 60).toString() +
' secs';
});
},);
}
Future<void> bottomSheet(BuildContext context,Widget child,{double height}) {
return showModalBottomSheet(
isScrollControlled: false,shape: RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(13),topRight: Radius.circular(13))),backgroundColor: Colors.white,context: context,builder: (context) => Container(
height: height ?? MediaQuery.of(context).size.height / 3,child: child));
}
Widget button(String text,{Function onpressed,Color color}) {
return Container(
width: 200,height: 50,margin: EdgeInsets.symmetric(vertical: 5),color: color ?? Colors.redAccent,child: MaterialButton(
child: Text(
'$text',style: TextStyle(color: Colors.white),),onpressed: onpressed),);
}
String time;
@override
Widget build(BuildContext context) {
ThemeData themeData = Theme.of(context);
return Scaffold(
backgroundColor: Colors.white10,body: AnimatedBuilder(
animation: controller,builder: (context,child) {
return Stack(
children: <Widget>[
Align(
alignment: Alignment.bottomCenter,child:
Container(
color: Colors.Amber,height:
controller.value * MediaQuery.of(context).size.height,Padding(
padding: EdgeInsets.all(8.0),child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,children: <Widget>[
Expanded(
child: Align(
alignment: FractionalOffset.center,child: AspectRatio(
aspectRatio: 1.0,child: Stack(
children: <Widget>[
Positioned.fill(
child: CustomPaint(
painter: CustomTimerPainter(
animation: controller,color: themeData.indicatorColor,)),Align(
alignment: FractionalOffset.center,child: Column(
mainAxisAlignment:
MainAxisAlignment.spaceEvenly,crossAxisAlignment:
CrossAxisAlignment.center,children: <Widget>[
Text(
"Count Down Timer",style: TextStyle(
fontSize: 20.0,color: Colors.white),Text(
timerString,style: TextStyle(
fontSize: 112.0,],AnimatedBuilder(
animation: controller,child) {
return Column(
children: [
FloatingActionButton.extended(
onpressed: () {
if (controller.isAnimating)
controller.stop();
else {
controller.reverse(
from: controller.value == 0.0
? 1.0
: controller.value);
}
},icon: Icon(controller.isAnimating
? Icons.pause
: Icons.play_arrow),label: Text(
controller.isAnimating ? "Pause" : "Play")),button(
"Cupertino Timer Picker",color: Colors.green,onpressed: () {
bottomSheet(context,timePicker());
},time == null ? Container() : Text('$time'),);
}),);
}),);
}
我指的是这个页面 https://gist.github.com/maheshmnj/f35813e62ae1a24cbd3acc71f797701d
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)