lan/dart

[Dart] DateTime, Dialog

캄춰 2024. 1. 12. 23:28
728x90
반응형

현재시간 

final now = DateTime.now();

 

 

D-Day

.difference

final now = DateTime.now();
'D+${DateTime(now.year, now.month, now.day).difference(firstDay).inDays + 1}'

 

 

하루씩 차감하기(뺴기)

.subtract

DateTime firstDay = DateTime.now();
firstDay = firstDay.subtract(Duration(days: 1));

 

 


Dialog가 갑자기 안띄어 지는 경우

No MaterialLocalizations found.

 

MaterialApp안에 Scaffold안에서 바로 호출하면 문제가 발생한다.

정확한 원인은 알 수 없으나, MaterialApp안에서 선언시 showDialog 또는 showCupertinoDialog가 호출되지 않는다.

 

따로  선언한 클래스에서 다이어로그를 호출하고, 받아올 값이 있다면, typedef함수(Function)로 lister형태로 받아오면 된다.

final DateTime firstDay;    // 사귀기 시작한 날
final Function(DateTime date) dateCallback;

const _DDay({
  super.key,
  required this.firstDay,
  required this.dateCallback
});
child: CupertinoDatePicker(
  onDateTimeChanged: (value) {
    dateCallback(value);
  },
  mode: CupertinoDatePickerMode.date,
_DDay(
  firstDay: firstDay,
  dateCallback: (date) {
    setState(() {
      firstDay = date;
    });
  },
),

 

Dialog화면 밖을 클릭했을때 꺼지게 하고 싶은 경우

- showDialog내부 파라메터이다.

- android에서는 outsideWindowCancel이었던가...

barrierDismissible: true

 

 

CupertinoDatePicker

mode : CupertinoDatePickerMode

  date : 날짜

  time : 시간

  dateAndTime : 날짜와 시간

 

showCupertinoDialog(
  context: context,
  builder: (context) => Align(
    alignment: Alignment.bottomCenter,
    child: Container(
      color: Colors.white,
      height: 300,
      child: CupertinoDatePicker(
        onDateTimeChanged: (value) {

        },
        mode: CupertinoDatePickerMode.date,
      ),
    ),
  ),
  barrierDismissible: true
);

728x90
반응형

'lan > dart' 카테고리의 다른 글

[Dart] SQL정리 sqflite라이브러리  (0) 2024.01.12
[Dart] Mixin활용  (0) 2024.01.11
[Dart] Functional 정리  (0) 2023.12.14
[Dart] OOP 정리  (0) 2023.12.13
[Dart] Dart다트 언어 정리  (0) 2023.12.13