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:
除非另有说明,本文档之所提及适用于 Flutter 的最新稳定版本,本页面最后更新时间: 2025-04-09。 查看文档源码 或者 为本页面内容提出建议.