Deprecated ExpansionTileController
Summary
#ExpansionTileController
is deprecated. The same functionality can be achieved by using ExpansibleController
instead.
Background
#ExpansionTileController
programmatically expands and collapses an ExpansionTile
. A new Expansible
widget has been added to the widgets library, which contains logic for expanding and collapsing behavior without being tied to the Material library. ExpansibleController
complements Expansible
and has the same functionality as ExpansionTileController
. Additionally, ExpansibleController
also supports adding and notifying listeners when its expansion state changes.
Apps that use ExpansionTileController
display the following error when run in debug mode: "Use ExpansibleController
instead.". Specifically, this means that users should replace usage of ExpansionTileController
with ExpansibleController
.
Migration guide
#To migrate, replace the controller
parameter of an ExpansionTile
from an ExpansionTileController
to an ExpansibleController
. Unlike ExpansionTileController
, ExpansibleController
is a ChangeNotifier
, so remember to dispose the new ExpansibleController
.
Code before migration:
class _MyWidgetState extends State<MyWidget> {
final ExpansionTileController controller = ExpansionTileController();
@override
Widget build(BuildContext context) {
return ExpansionTile(
controller: controller,
);
}
}
Code after migration:
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
#Landed in version: 3.31.0-0.1.pre
In stable release: not yet
References
#API documentation:
Relevant issues:
- Codeshare between ExpansionTile and its Cupertino variant
- Deprecate ExpansionTileController in favor of ExpansibleController
Relevant PRs:
Unless stated otherwise, the documentation on this site reflects the latest stable version of Flutter. Page last updated on 2025-04-09. View source or report an issue.