Merge pull request #2237 from HansMuller/tabs
Stop animating in deactivate()
This commit is contained in:
commit
c56be8efba
@ -451,10 +451,8 @@ class TabBarSelectionState<T> extends State<TabBarSelection<T>> {
|
|||||||
_initValueToIndex();
|
_initValueToIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
void dispose() {
|
void _writeValue() {
|
||||||
_controller.stop();
|
|
||||||
PageStorage.of(context)?.writeState(context, _value);
|
PageStorage.of(context)?.writeState(context, _value);
|
||||||
super.dispose();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
List<T> get values => config.values;
|
List<T> get values => config.values;
|
||||||
@ -477,6 +475,7 @@ class TabBarSelectionState<T> extends State<TabBarSelection<T>> {
|
|||||||
if (!_valueIsChanging)
|
if (!_valueIsChanging)
|
||||||
_previousValue = _value;
|
_previousValue = _value;
|
||||||
_value = newValue;
|
_value = newValue;
|
||||||
|
_writeValue();
|
||||||
_valueIsChanging = true;
|
_valueIsChanging = true;
|
||||||
|
|
||||||
// If the selected value change was triggered by a drag gesture, the current
|
// If the selected value change was triggered by a drag gesture, the current
|
||||||
@ -530,11 +529,13 @@ class TabBarSelectionState<T> extends State<TabBarSelection<T>> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void deactivate() {
|
void deactivate() {
|
||||||
|
_controller.stop();
|
||||||
for (TabBarSelectionAnimationListener listener in _animationListeners.toList()) {
|
for (TabBarSelectionAnimationListener listener in _animationListeners.toList()) {
|
||||||
listener.handleSelectionDeactivate();
|
listener.handleSelectionDeactivate();
|
||||||
unregisterAnimationListener(listener);
|
unregisterAnimationListener(listener);
|
||||||
}
|
}
|
||||||
assert(_animationListeners.isEmpty);
|
assert(_animationListeners.isEmpty);
|
||||||
|
_writeValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user