@@ -3,6 +3,7 @@ library flutter_datetime_picker;
3
3
import 'dart:async' ;
4
4
import 'package:flutter/cupertino.dart' ;
5
5
import 'package:flutter/material.dart' ;
6
+ import 'package:flutter/painting.dart' ;
6
7
import 'package:flutter_datetime_picker/src/datetime_picker_theme.dart' ;
7
8
import 'package:flutter_datetime_picker/src/date_model.dart' ;
8
9
import 'package:flutter_datetime_picker/src/i18n_model.dart' ;
@@ -398,70 +399,73 @@ class _DatePickerState extends State<_DatePickerComponent> {
398
399
Widget _renderItemView (DatePickerTheme theme) {
399
400
return Container (
400
401
color: theme.backgroundColor,
401
- child: Row (
402
- mainAxisAlignment: MainAxisAlignment .spaceBetween,
403
- children: < Widget > [
404
- Container (
405
- child: widget.pickerModel.layoutProportions ()[0 ] > 0
406
- ? _renderColumnView (
407
- ValueKey (widget.pickerModel.currentLeftIndex ()),
408
- theme,
409
- widget.pickerModel.leftStringAtIndex,
410
- leftScrollCtrl,
411
- widget.pickerModel.layoutProportions ()[0 ], (index) {
412
- widget.pickerModel.setLeftIndex (index);
413
- }, (index) {
414
- setState (() {
415
- refreshScrollOffset ();
416
- _notifyDateChanged ();
417
- });
418
- })
419
- : null ,
420
- ),
421
- Text (
422
- widget.pickerModel.leftDivider (),
423
- style: theme.itemStyle,
424
- ),
425
- Container (
426
- child: widget.pickerModel.layoutProportions ()[1 ] > 0
427
- ? _renderColumnView (
428
- ValueKey (widget.pickerModel.currentLeftIndex ()),
429
- theme,
430
- widget.pickerModel.middleStringAtIndex,
431
- middleScrollCtrl,
432
- widget.pickerModel.layoutProportions ()[1 ], (index) {
433
- widget.pickerModel.setMiddleIndex (index);
434
- }, (index) {
435
- setState (() {
436
- refreshScrollOffset ();
437
- _notifyDateChanged ();
438
- });
439
- })
440
- : null ,
441
- ),
442
- Text (
443
- widget.pickerModel.rightDivider (),
444
- style: theme.itemStyle,
445
- ),
446
- Container (
447
- child: widget.pickerModel.layoutProportions ()[2 ] > 0
448
- ? _renderColumnView (
449
- ValueKey (widget.pickerModel.currentMiddleIndex () * 100 +
450
- widget.pickerModel.currentLeftIndex ()),
451
- theme,
452
- widget.pickerModel.rightStringAtIndex,
453
- rightScrollCtrl,
454
- widget.pickerModel.layoutProportions ()[2 ], (index) {
455
- widget.pickerModel.setRightIndex (index);
456
- }, (index) {
457
- setState (() {
458
- refreshScrollOffset ();
459
- _notifyDateChanged ();
460
- });
461
- })
462
- : null ,
463
- ),
464
- ],
402
+ child: Directionality (
403
+ textDirection: TextDirection .ltr,
404
+ child: Row (
405
+ mainAxisAlignment: MainAxisAlignment .spaceBetween,
406
+ children: < Widget > [
407
+ Container (
408
+ child: widget.pickerModel.layoutProportions ()[0 ] > 0
409
+ ? _renderColumnView (
410
+ ValueKey (widget.pickerModel.currentLeftIndex ()),
411
+ theme,
412
+ widget.pickerModel.leftStringAtIndex,
413
+ leftScrollCtrl,
414
+ widget.pickerModel.layoutProportions ()[0 ], (index) {
415
+ widget.pickerModel.setLeftIndex (index);
416
+ }, (index) {
417
+ setState (() {
418
+ refreshScrollOffset ();
419
+ _notifyDateChanged ();
420
+ });
421
+ })
422
+ : null ,
423
+ ),
424
+ Text (
425
+ widget.pickerModel.leftDivider (),
426
+ style: theme.itemStyle,
427
+ ),
428
+ Container (
429
+ child: widget.pickerModel.layoutProportions ()[1 ] > 0
430
+ ? _renderColumnView (
431
+ ValueKey (widget.pickerModel.currentLeftIndex ()),
432
+ theme,
433
+ widget.pickerModel.middleStringAtIndex,
434
+ middleScrollCtrl,
435
+ widget.pickerModel.layoutProportions ()[1 ], (index) {
436
+ widget.pickerModel.setMiddleIndex (index);
437
+ }, (index) {
438
+ setState (() {
439
+ refreshScrollOffset ();
440
+ _notifyDateChanged ();
441
+ });
442
+ })
443
+ : null ,
444
+ ),
445
+ Text (
446
+ widget.pickerModel.rightDivider (),
447
+ style: theme.itemStyle,
448
+ ),
449
+ Container (
450
+ child: widget.pickerModel.layoutProportions ()[2 ] > 0
451
+ ? _renderColumnView (
452
+ ValueKey (widget.pickerModel.currentMiddleIndex () * 100 +
453
+ widget.pickerModel.currentLeftIndex ()),
454
+ theme,
455
+ widget.pickerModel.rightStringAtIndex,
456
+ rightScrollCtrl,
457
+ widget.pickerModel.layoutProportions ()[2 ], (index) {
458
+ widget.pickerModel.setRightIndex (index);
459
+ }, (index) {
460
+ setState (() {
461
+ refreshScrollOffset ();
462
+ _notifyDateChanged ();
463
+ });
464
+ })
465
+ : null ,
466
+ ),
467
+ ],
468
+ ),
465
469
),
466
470
);
467
471
}
@@ -483,7 +487,7 @@ class _DatePickerState extends State<_DatePickerComponent> {
483
487
height: theme.titleHeight,
484
488
child: CupertinoButton (
485
489
pressedOpacity: 0.3 ,
486
- padding: EdgeInsets .only (left : 16 , top: 0 ),
490
+ padding: EdgeInsetsDirectional .only (start : 16 , top: 0 ),
487
491
child: Text (
488
492
'$cancel ' ,
489
493
style: theme.cancelStyle,
@@ -500,7 +504,7 @@ class _DatePickerState extends State<_DatePickerComponent> {
500
504
height: theme.titleHeight,
501
505
child: CupertinoButton (
502
506
pressedOpacity: 0.3 ,
503
- padding: EdgeInsets .only (right : 16 , top: 0 ),
507
+ padding: EdgeInsetsDirectional .only (end : 16 , top: 0 ),
504
508
child: Text (
505
509
'$done ' ,
506
510
style: theme.doneStyle,
0 commit comments