From 3da1f0a1f731e0725c42d528d95cee60640c1480 Mon Sep 17 00:00:00 2001 From: Romain Rastel Date: Sun, 10 Jul 2022 15:21:50 +0200 Subject: [PATCH] fixes #289 --- CHANGELOG.md | 4 ++++ example/pubspec.lock | 2 +- lib/src/flex_entrance_transition.dart | 29 +++++++++++++++------------ pubspec.yaml | 2 +- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a98bf7de..5d60d4ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.3.1 +### Fixed +* Rare LateInitializationError with DrawerMotion (https://github.com/letsar/flutter_slidable/issues/289). + ## 1.3.0 ### Added * Padding and BorderRadius to SlidableAction. diff --git a/example/pubspec.lock b/example/pubspec.lock index 05d2639d..7712ce54 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -68,7 +68,7 @@ packages: path: ".." relative: true source: path - version: "1.3.0" + version: "1.3.1" flutter_test: dependency: "direct dev" description: flutter diff --git a/lib/src/flex_entrance_transition.dart b/lib/src/flex_entrance_transition.dart index fc913ddf..35bcc29d 100644 --- a/lib/src/flex_entrance_transition.dart +++ b/lib/src/flex_entrance_transition.dart @@ -1,5 +1,5 @@ -import 'package:flutter/widgets.dart'; import 'package:flutter/rendering.dart'; +import 'package:flutter/widgets.dart'; // INTERNAL USE // ignore_for_file: public_member_api_docs @@ -42,7 +42,7 @@ class FlexEntranceTransition extends MultiChildRenderObjectWidget { } class _FlexEntranceTransitionParentData extends FlexParentData { - late Tween mainAxisPosition; + Tween? mainAxisPosition; } class _RenderFlexEntranceTransition extends RenderBox @@ -123,17 +123,20 @@ class _RenderFlexEntranceTransition extends RenderBox } void updateChildOffsets(RenderObject child) { - final parentData = child.parentData as _FlexEntranceTransitionParentData?; - final mainAxisPosition = parentData!.mainAxisPosition.evaluate( - _mainAxisPosition, - ); - switch (_direction) { - case Axis.horizontal: - parentData.offset = Offset(mainAxisPosition, 0); - break; - case Axis.vertical: - parentData.offset = Offset(0, mainAxisPosition); - break; + final parentData = child.parentData; + if (parentData is _FlexEntranceTransitionParentData) { + final mainAxisPosition = parentData.mainAxisPosition?.evaluate( + _mainAxisPosition, + ) ?? + 0; + switch (_direction) { + case Axis.horizontal: + parentData.offset = Offset(mainAxisPosition, 0); + break; + case Axis.vertical: + parentData.offset = Offset(0, mainAxisPosition); + break; + } } } diff --git a/pubspec.yaml b/pubspec.yaml index f27e3b65..3154c832 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_slidable description: A Flutter implementation of slidable list item with directional slide actions that can be dismissed. -version: 1.3.0 +version: 1.3.1 homepage: https://github.com/letsar/flutter_slidable environment: