Provide an initial rotation of the ExpansionIcon if isExpanded = true on initState (#15657)

* rotate expansion icon fully if initial state expanded = true

* add test case for initially expanded

* remove unused import

* Update expand_icon_test.dart

add linebreak

* import dart:math as math
This commit is contained in:
Jonah Williams 2018-03-19 17:27:34 -07:00 committed by GitHub
parent 33fea5c19a
commit 27ac523ea0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 0 deletions

View file

@ -1,6 +1,7 @@
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:math' as math;
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
@ -72,6 +73,10 @@ class _ExpandIconState extends State<ExpandIcon> with SingleTickerProviderStateM
curve: Curves.fastOutSlowIn
)
);
// If the widget is initially expanded, rotate the icon without animating it.
if (widget.isExpanded) {
_controller.value = math.pi;
}
}
@override

View file

@ -67,6 +67,23 @@ void main() {
expect(expanded, isFalse);
});
testWidgets('ExpandIcon is rotated initially if isExpanded is true on first build', (WidgetTester tester) async {
bool expanded = true;
await tester.pumpWidget(
wrap(
child: new ExpandIcon(
isExpanded: expanded,
onPressed: (bool isExpanded) {
expanded = !isExpanded;
},
)
)
);
final RotationTransition rotation = tester.firstWidget(find.byType(RotationTransition));
expect(rotation.turns.value, 0.5);
});
}
Widget wrap({ Widget child }) {