#flutter #dart #datepicker #floating-action-button
Вопрос:
Я использую date_picker_timeline
виджет, и я хотел, чтобы средство выбора даты перескочило на определенную дату, когда я нажал кнопку плавающего действия. Но это работает не так, как задумывалось. Вот мой код.
главная.дротик
import 'package:flutter/material.dart';
import 'package:date_picker_timeline/date_picker_timeline.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Date Picker"),
),
body: Center(
child: Column(
children: [datePickerMethod()],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
//This is not jumping to the given date
DatePickerController().animateToDate(DateTime(2021, 10, 10));
},
child: Icon(Icons.add),
),
);
}
}
DatePicker datePickerMethod() {
return DatePicker(
DateTime.now(),
initialSelectedDate: DateTime.now(),
selectionColor: Colors.blueAccent,
selectedTextColor: Colors.white,
);
}
pubspec.yaml
name: date_picker_demo
description: A new Flutter project.
version: 1.0.0 1
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
date_picker_timeline: ^1.2.3
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
Ответ №1:
Ответил
import 'package:flutter/material.dart';
import 'package:date_picker_timeline/date_picker_timeline.dart';
void main() {
runApp(MyApp());
}
DatePickerController dp = DatePickerController();
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Date Picker"),
),
body: Center(
child: Column(
children: [datePickerMethod()],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
//Fixed
dp.animateToDate(DateTime(2021, 10, 10));
},
child: Icon(Icons.add),
),
);
}
}
DatePicker datePickerMethod() {
return DatePicker(
DateTime.now(),
controller: dp,
initialSelectedDate: DateTime.now(),
selectionColor: Colors.blueAccent,
selectedTextColor: Colors.white,
);
}