Flutter 如何在不点击一个按钮的情况下在页面上显示日期选择器?

Flutter 如何在不点击一个按钮的情况下在页面上显示日期选择器?,flutter,datepicker,Flutter,Datepicker,到目前为止,所有的例子都是在点击一个标签后弹出的日期选择器 是否有如下所示的显示日期选择器的方法?谢谢 您始终可以将选择器视为小部件,这就是为什么不需要通过单击按钮来调用它们的原因。检查下面的完整示例或联机运行 显示Cupertino日期选择器的示例代码: import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } cla

到目前为止,所有的例子都是在点击一个标签后弹出的日期选择器

是否有如下所示的显示日期选择器的方法?谢谢


您始终可以将选择器视为小部件,这就是为什么不需要通过单击按钮来调用它们的原因。检查下面的完整示例或联机运行

显示Cupertino日期选择器的示例代码:

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.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(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: CupertinoDatePicker(
        mode: CupertinoDatePickerMode.date,
        initialDateTime: DateTime.now(),
        onDateTimeChanged: (DateTime value) {},
      ),
    );
  }
}

import'包装:flift/cupertino.dart';
进口“包装:颤振/材料.省道”;
void main(){
runApp(MyApp());
}
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振演示”,
主题:主题数据(
主样本:颜色。蓝色,
),
主页:MyHomePage(标题:“颤振演示主页”),
);
}
}
类MyHomePage扩展StatefulWidget{
MyHomePage({Key,this.title}):超级(Key:Key);
最后的字符串标题;
@凌驾
_MyHomePageState createState()=>\u MyHomePageState();
}
类_MyHomePageState扩展状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(widget.title),
),
主体:Cupertinodepicker(
模式:CupertinodeTatePickerMode.date,
initialDateTime:DateTime.now(),
onDateTimeChanged:(日期时间值){},
),
);
}
}
对于材质小部件:

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: CalendarDatePicker(
        onDateChanged: (DateTime value) {},
        lastDate: DateTime.now().add(Duration(days: 30)),
        firstDate: DateTime.now(),
        initialDate: DateTime.now(),
      ),
    );
  }
}
class\u MyHomePageState扩展状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(widget.title),
),
正文:日历日期选择器(
onDateChanged:(日期时间值){},
lastDate:DateTime.now().add(持续时间(天):30)),
firstDate:DateTime.now(),
initialDate:DateTime.now(),
),
);
}
}

如果您对此有任何进一步的疑问,请告诉我。

谢谢D C,这是有道理的。然而,非iOS也能显示Cupertino的日期选择器吗?或者必须有另一个小部件存在,以便非iOS小部件可以显示材料的日期选择器?是的,在android设备上使用Cupertino小部件将非常好。此外,如果您使用Cupertino小部件,则它们会在所有设备上显示Cupertino小部件,这意味着它们不会自动切换到材质。您必须根据设备使用条件从材质切换到Cupertino。您必须知道设备运行在哪个平台上,并在此基础上显示特定的小部件。但是为了简化这项工作,你可以使用这个软件包。如果您对日期选取者有任何进一步的疑问,请告诉我。谢谢,如果我有疑问,请联系DC:D@DC,你知道怎么解决这个问题吗?