Saltar al contenido principal

ExpansionTileController obsoleto

`ExpansionTileController` está obsoleto y es reemplazado por `ExpansibleController`.

Resumen

#

ExpansionTileController está obsoleto. La misma funcionalidad se puede lograr utilizando ExpansibleController en su lugar.

Contexto

#

ExpansionTileController expande y colapsa programáticamente un ExpansionTile. Se ha añadido un nuevo widget Expansible a la biblioteca de widgets, que contiene la lógica para el comportamiento de expansión y colapso sin estar ligado a la biblioteca Material. ExpansibleController complementa a Expansible y tiene la misma funcionalidad que ExpansionTileController. Además, ExpansibleController también admite añadir y notificar a los listeners cuando cambia su estado de expansión.

Las aplicaciones que usan ExpansionTileController muestran el siguiente error cuando se ejecutan en modo de depuración: "Use ExpansibleController instead.". Específicamente, esto significa que los usuarios deben reemplazar el uso de ExpansionTileController con ExpansibleController.

Guía de migración

#

Para migrar, reemplaza el parámetro controller de un ExpansionTile de un ExpansionTileController a un ExpansibleController. A diferencia de ExpansionTileController, ExpansibleController es un ChangeNotifier, así que recuerda desechar (dispose) el nuevo ExpansibleController.

Código antes de la migración:

dart
class _MyWidgetState extends State<MyWidget> {
  final ExpansionTileController controller = ExpansionTileController();

  @override
  Widget build(BuildContext context) {
    return ExpansionTile(
      controller: controller,
    );
  }
}

Código después de la migración:

dart
class _MyWidgetState extends State<MyWidget> {
  final ExpansibleController controller = ExpansibleController();

  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return ExpansionTile(
      controller: controller,
    );
  }
}

Timeline

#

Lanzado en la versión: 3.31.0-0.1.pre
En versión estable: 3.32

Referencias

#

Documentación de la API:

Issues relevantes:

PRs relevantes: