已弃用的 ExpansionTileController
概述
#ExpansionTileController
已弃用。相同的功能可以通过使用 ExpansibleController
实现。
背景
#ExpansionTileController
可以通过编程方式展开和折叠 ExpansionTile
。一个新的 Expansible
组件已添加到组件库中,它包含了展开和折叠行为的逻辑,且不依赖于 Material 库。ExpansibleController
补充了 Expansible
,并具有与 ExpansionTileController
相同的功能。此外,ExpansibleController
还支持在其展开状态改变时添加和通知监听器。
使用 ExpansionTileController
的应用在调试模式下运行时会显示以下错误:“请改用 ExpansibleController
。” 具体来说,这意味着用户应将 ExpansionTileController
的用法替换为 ExpansibleController
。
迁移指南
#要迁移,请将 ExpansionTile
的 controller
参数从 ExpansionTileController
替换为 ExpansibleController
。与 ExpansionTileController
不同,ExpansibleController
是一个 ChangeNotifier
,因此请记住处理(dispose)新的 ExpansibleController
。
迁移前的代码
class _MyWidgetState extends State<MyWidget> {
final ExpansionTileController controller = ExpansionTileController();
@override
Widget build(BuildContext context) {
return ExpansionTile(
controller: controller,
);
}
}
迁移后的代码
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,
);
}
}
时间线
#发布版本:3.31.0-0.1.pre
稳定版本:3.32
参考资料
#API 文档
相关问题
相关 PR