• flutter DateTime日期&时间选择器


    import 'package:flutter/material.dart';
    import 'package:intl/intl.dart';
    import 'dart:async';
    
    class DateTimeDemo extends StatefulWidget {
      @override
      _DateTimeDemoState createState() => _DateTimeDemoState();
    }
    
    class _DateTimeDemoState extends State<DateTimeDemo> {
      DateTime selectedDate = DateTime.now();
      TimeOfDay selectedTime = TimeOfDay(hour: 9, minute: 30);
      
      Future<void> _selectDate() async {
        final DateTime date = await showDatePicker(
          context: context,
          initialDate: selectedDate,
          firstDate: DateTime(1900),
          lastDate: DateTime(2100),
        );
    
        if (date == null) return;
    
        setState(() {
          selectedDate = date;
        });
      }
    
      Future<void> _selectTime() async {
        final TimeOfDay time = await showTimePicker(
          context: context,
          initialTime: selectedTime,
        );
    
        if (time == null) return;
    
        setState(() {
          selectedTime = time;
        });
      } 
      
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('DateTimeDemo'),
            elevation: 0.0,
          ),
          body: Container(
            padding: EdgeInsets.all(16.0),
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Row(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    InkWell(
                      onTap: _selectDate,
                      child: Row(
                        children: <Widget>[
                          Text(DateFormat.yMMMMd().format(selectedDate)),
                          Icon(Icons.arrow_drop_down),
                        ],
                      ),
                    ),
                    InkWell(
                      onTap: _selectTime,
                      child: Row(
                        children: <Widget>[
                          Text(selectedTime.format(context)),
                          Icon(Icons.arrow_drop_down),
                        ],
                      ),
                    ),
                  ],
                ),
              ],
            ),
          )
        );
      }
    }
     pubspec.yaml中添加 intl_translation: ^0.17.2

    文档:https://api.flutter.dev/flutter/material/showDatePicker.html

    效果:

  • 相关阅读:
    celery worker的工作模式
    动态加载js
    PHP加密解密
    js加载div, 元素事件不生效问题
    任意页面加载聊天框组件(也可用于其他)
    重装系统
    vue 跨域问题
    859. Buddy Strings
    316. Remove Duplicate Letters
    654. Maximum Binary Tree
  • 原文地址:https://www.cnblogs.com/loaderman/p/11344990.html
Copyright © 2020-2023  润新知