Deprecate AnimatedListItemBuilder
and AnimatedListRemovedItemBuilder
(#113131)
This commit is contained in:
parent
721d4abb68
commit
1730662bc0
@ -50,11 +50,13 @@ class _AnimatedListSampleState extends State<AnimatedListSample> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Used to build an item after it has been removed from the list. This method
|
/// The builder function used to build items that have been removed.
|
||||||
// is needed because a removed item remains visible until its animation has
|
///
|
||||||
// completed (even though it's gone as far as this ListModel is concerned).
|
/// Used to build an item after it has been removed from the list. This method
|
||||||
// The widget will be used by the [AnimatedListState.removeItem] method's
|
/// is needed because a removed item remains visible until its animation has
|
||||||
// [AnimatedListRemovedItemBuilder] parameter.
|
/// completed (even though it's gone as far as this ListModel is concerned).
|
||||||
|
/// The widget will be used by the [AnimatedListState.removeItem] method's
|
||||||
|
/// [AnimatedRemovedItemBuilder] parameter.
|
||||||
Widget _buildRemovedItem(
|
Widget _buildRemovedItem(
|
||||||
int item, BuildContext context, Animation<double> animation) {
|
int item, BuildContext context, Animation<double> animation) {
|
||||||
return CardItem(
|
return CardItem(
|
||||||
|
@ -53,12 +53,13 @@ class _SliverAnimatedListSampleState extends State<SliverAnimatedListSample> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Used to build an item after it has been removed from the list. This
|
/// The builder function used to build items that have been removed.
|
||||||
// method is needed because a removed item remains visible until its
|
///
|
||||||
// animation has completed (even though it's gone as far this ListModel is
|
/// Used to build an item after it has been removed from the list. This method
|
||||||
// concerned). The widget will be used by the
|
/// is needed because a removed item remains visible until its animation has
|
||||||
// [AnimatedListState.removeItem] method's
|
/// completed (even though it's gone as far this ListModel is concerned). The
|
||||||
// [AnimatedListRemovedItemBuilder] parameter.
|
/// widget will be used by the [AnimatedListState.removeItem] method's
|
||||||
|
/// [AnimatedRemovedItemBuilder] parameter.
|
||||||
Widget _buildRemovedItem(
|
Widget _buildRemovedItem(
|
||||||
int item, BuildContext context, Animation<double> animation) {
|
int item, BuildContext context, Animation<double> animation) {
|
||||||
return CardItem(
|
return CardItem(
|
||||||
|
@ -20,7 +20,9 @@ import 'ticker_provider.dart';
|
|||||||
/// `animation` is an [Animation] that should be used to animate an entry
|
/// `animation` is an [Animation] that should be used to animate an entry
|
||||||
/// transition for the widget that is built.
|
/// transition for the widget that is built.
|
||||||
///
|
///
|
||||||
/// - [AnimatedRemovedItemBuilder], a builder that is for removing items with
|
/// See also:
|
||||||
|
///
|
||||||
|
/// * [AnimatedRemovedItemBuilder], a builder that is for removing items with
|
||||||
/// animations instead of adding them.
|
/// animations instead of adding them.
|
||||||
typedef AnimatedItemBuilder = Widget Function(BuildContext context, int index, Animation<double> animation);
|
typedef AnimatedItemBuilder = Widget Function(BuildContext context, int index, Animation<double> animation);
|
||||||
|
|
||||||
@ -34,7 +36,7 @@ typedef AnimatedItemBuilder = Widget Function(BuildContext context, int index, A
|
|||||||
///
|
///
|
||||||
/// See also:
|
/// See also:
|
||||||
///
|
///
|
||||||
/// - [AnimatedItemBuilder], a builder that is for adding items with animations
|
/// * [AnimatedItemBuilder], a builder that is for adding items with animations
|
||||||
/// instead of removing them.
|
/// instead of removing them.
|
||||||
typedef AnimatedRemovedItemBuilder = Widget Function(BuildContext context, Animation<double> animation);
|
typedef AnimatedRemovedItemBuilder = Widget Function(BuildContext context, Animation<double> animation);
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
|
|
||||||
|
import 'animated_grid.dart';
|
||||||
import 'basic.dart';
|
import 'basic.dart';
|
||||||
import 'framework.dart';
|
import 'framework.dart';
|
||||||
import 'scroll_controller.dart';
|
import 'scroll_controller.dart';
|
||||||
@ -13,9 +14,22 @@ import 'sliver.dart';
|
|||||||
import 'ticker_provider.dart';
|
import 'ticker_provider.dart';
|
||||||
|
|
||||||
/// Signature for the builder callback used by [AnimatedList].
|
/// Signature for the builder callback used by [AnimatedList].
|
||||||
|
///
|
||||||
|
/// This is deprecated, use the identical [AnimatedItemBuilder] instead.
|
||||||
|
@Deprecated(
|
||||||
|
'Use AnimatedItemBuilder instead. '
|
||||||
|
'This feature was deprecated after v3.5.0-4.0.pre.',
|
||||||
|
)
|
||||||
typedef AnimatedListItemBuilder = Widget Function(BuildContext context, int index, Animation<double> animation);
|
typedef AnimatedListItemBuilder = Widget Function(BuildContext context, int index, Animation<double> animation);
|
||||||
|
|
||||||
/// Signature for the builder callback used by [AnimatedListState.removeItem].
|
/// Signature for the builder callback used by [AnimatedListState.removeItem].
|
||||||
|
///
|
||||||
|
/// This is deprecated, use the identical [AnimatedRemovedItemBuilder]
|
||||||
|
/// instead.
|
||||||
|
@Deprecated(
|
||||||
|
'Use AnimatedRemovedItemBuilder instead. '
|
||||||
|
'This feature was deprecated after v3.5.0-4.0.pre.',
|
||||||
|
)
|
||||||
typedef AnimatedListRemovedItemBuilder = Widget Function(BuildContext context, Animation<double> animation);
|
typedef AnimatedListRemovedItemBuilder = Widget Function(BuildContext context, Animation<double> animation);
|
||||||
|
|
||||||
// The default insert/remove animation duration.
|
// The default insert/remove animation duration.
|
||||||
@ -30,7 +44,7 @@ class _ActiveItem implements Comparable<_ActiveItem> {
|
|||||||
removedItemBuilder = null;
|
removedItemBuilder = null;
|
||||||
|
|
||||||
final AnimationController? controller;
|
final AnimationController? controller;
|
||||||
final AnimatedListRemovedItemBuilder? removedItemBuilder;
|
final AnimatedRemovedItemBuilder? removedItemBuilder;
|
||||||
int itemIndex;
|
int itemIndex;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -84,7 +98,7 @@ class AnimatedList extends StatefulWidget {
|
|||||||
///
|
///
|
||||||
/// List items are only built when they're scrolled into view.
|
/// List items are only built when they're scrolled into view.
|
||||||
///
|
///
|
||||||
/// The [AnimatedListItemBuilder] index parameter indicates the item's
|
/// The [AnimatedItemBuilder] index parameter indicates the item's
|
||||||
/// position in the list. The value of the index parameter will be between 0
|
/// position in the list. The value of the index parameter will be between 0
|
||||||
/// and [initialItemCount] plus the total number of items that have been
|
/// and [initialItemCount] plus the total number of items that have been
|
||||||
/// inserted with [AnimatedListState.insertItem] and less the total number of
|
/// inserted with [AnimatedListState.insertItem] and less the total number of
|
||||||
@ -92,7 +106,7 @@ class AnimatedList extends StatefulWidget {
|
|||||||
///
|
///
|
||||||
/// Implementations of this callback should assume that
|
/// Implementations of this callback should assume that
|
||||||
/// [AnimatedListState.removeItem] removes an item immediately.
|
/// [AnimatedListState.removeItem] removes an item immediately.
|
||||||
final AnimatedListItemBuilder itemBuilder;
|
final AnimatedItemBuilder itemBuilder;
|
||||||
|
|
||||||
/// {@template flutter.widgets.animatedList.initialItemCount}
|
/// {@template flutter.widgets.animatedList.initialItemCount}
|
||||||
/// The number of items the list will start with.
|
/// The number of items the list will start with.
|
||||||
@ -305,7 +319,7 @@ class AnimatedListState extends State<AnimatedList> with TickerProviderStateMixi
|
|||||||
/// This method's semantics are the same as Dart's [List.remove] method:
|
/// This method's semantics are the same as Dart's [List.remove] method:
|
||||||
/// it decreases the length of the list by one and shifts all items at or
|
/// it decreases the length of the list by one and shifts all items at or
|
||||||
/// before [index] towards the beginning of the list.
|
/// before [index] towards the beginning of the list.
|
||||||
void removeItem(int index, AnimatedListRemovedItemBuilder builder, { Duration duration = _kDuration }) {
|
void removeItem(int index, AnimatedRemovedItemBuilder builder, { Duration duration = _kDuration }) {
|
||||||
_sliverAnimatedListKey.currentState!.removeItem(index, builder, duration: duration);
|
_sliverAnimatedListKey.currentState!.removeItem(index, builder, duration: duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -371,7 +385,7 @@ class SliverAnimatedList extends StatefulWidget {
|
|||||||
///
|
///
|
||||||
/// List items are only built when they're scrolled into view.
|
/// List items are only built when they're scrolled into view.
|
||||||
///
|
///
|
||||||
/// The [AnimatedListItemBuilder] index parameter indicates the item's
|
/// The [AnimatedItemBuilder] index parameter indicates the item's
|
||||||
/// position in the list. The value of the index parameter will be between 0
|
/// position in the list. The value of the index parameter will be between 0
|
||||||
/// and [initialItemCount] plus the total number of items that have been
|
/// and [initialItemCount] plus the total number of items that have been
|
||||||
/// inserted with [SliverAnimatedListState.insertItem] and less the total
|
/// inserted with [SliverAnimatedListState.insertItem] and less the total
|
||||||
@ -380,7 +394,7 @@ class SliverAnimatedList extends StatefulWidget {
|
|||||||
///
|
///
|
||||||
/// Implementations of this callback should assume that
|
/// Implementations of this callback should assume that
|
||||||
/// [SliverAnimatedListState.removeItem] removes an item immediately.
|
/// [SliverAnimatedListState.removeItem] removes an item immediately.
|
||||||
final AnimatedListItemBuilder itemBuilder;
|
final AnimatedItemBuilder itemBuilder;
|
||||||
|
|
||||||
/// {@macro flutter.widgets.SliverChildBuilderDelegate.findChildIndexCallback}
|
/// {@macro flutter.widgets.SliverChildBuilderDelegate.findChildIndexCallback}
|
||||||
final ChildIndexGetter? findChildIndexCallback;
|
final ChildIndexGetter? findChildIndexCallback;
|
||||||
@ -620,7 +634,7 @@ class SliverAnimatedListState extends State<SliverAnimatedList> with TickerProvi
|
|||||||
/// This method's semantics are the same as Dart's [List.remove] method:
|
/// This method's semantics are the same as Dart's [List.remove] method:
|
||||||
/// it decreases the length of the list by one and shifts all items at or
|
/// it decreases the length of the list by one and shifts all items at or
|
||||||
/// before [index] towards the beginning of the list.
|
/// before [index] towards the beginning of the list.
|
||||||
void removeItem(int index, AnimatedListRemovedItemBuilder builder, { Duration duration = _kDuration }) {
|
void removeItem(int index, AnimatedRemovedItemBuilder builder, { Duration duration = _kDuration }) {
|
||||||
assert(index != null && index >= 0);
|
assert(index != null && index >= 0);
|
||||||
assert(builder != null);
|
assert(builder != null);
|
||||||
assert(duration != null);
|
assert(duration != null);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user