首页 > 解决方案 > Datepicker 的问题,如果您尝试更改月份或年份,它就会消失

问题描述

当我尝试在日期选择器模式中更改年份或月份时,它会消失。如下所示:

在此处输入图像描述

这是代码:

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider.value(
      value: Register(),
      child: MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        home: MyHomePage(),
      ),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('some title'),
      ),
      body: Consumer<Register>(
        builder: (context, register, child) {
          return InkWell(
            onTap: () {
              _selectDate(context, register);
            },
            child: Container(
              child: Text('Click me'),
            ),
          );
        },
      ),
    );
  }

  Future<void> _selectDate(BuildContext context, Register register) async {
    final DateTime picked = await showDatePicker(
      context: context,
      initialDate: register.birthdate,
      firstDate: DateTime(1920),
      lastDate: DateTime.now(),
    );
    print(picked);
    if (picked != null && picked != register.birthdate) {
      register.birthdate = picked;
    }
  }
}

class Register extends ChangeNotifier {
  DateTime birthdate = DateTime.now();
  String get birthDateDate {
    return birthdate.toLocal().toIso8601String();
  }
}

标签: flutterdartflutter-layout

解决方案


在我重新启动 iOS 模拟器并像魅力一样工作后,我重新检查了 android 模拟器并且它工作正常。


推荐阅读