Flutter 日历

(一)效果
在这里插入图片描述
默认是英文日期

(二)代码实现
没有下依赖的记得参照时间戳那篇博客

以下代码复制进main.dart文件即可运行

import 'package:flutter/material.dart';

void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
        home: DatePickerDemo()//入口函数
    );
  }
}


class DatePickerDemo extends StatefulWidget {
  DatePickerDemo({Key key}) : super(key: key);
  @override
  _DatePickerDemoState createState() => _DatePickerDemoState();
}

class _DatePickerDemoState extends State<DatePickerDemo> {
  DateTime _nowDate = DateTime.now();
  _showDatePicker() {
    showDatePicker(
      context: context, //上下文对象
      initialDate: _nowDate, //初始化显示的日期
      firstDate: DateTime(2019),
      lastDate: DateTime(2021),
    );
  }

  @override
  void initState() {
    //TODO: implement initState
    super.initState();
    //var now = DateTime.now();
    //print(now);//打印当前时间 2020-12-29 06:21:34.729165

    //print(now.millisecondsSinceEpoch);//时间戳  1609222955510
    //print(DateTime.fromMicrosecondsSinceEpoch(1608623002151));//时间戳转换成时间 1970-01-19 14:50:23.002151
    // print(formatDate(DateTime(2020, 12, 29), [yyyy, '年', mm, '月', dd]));//打印时间 格式
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text("datepicker"),
        ),
        body: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            InkWell(
              //相当于button,实质是带水波纹效果的点击
              child: Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  Text("2020-12-29"),
                  Icon(Icons.arrow_drop_down),
                ],
              ),
              onTap: () {
                _showDatePicker();
                print("打开日期组件");
              },
            )
          ],
        ));
  }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值