已弃用的 ExpansionTileController
概述
#ExpansionTileController
已弃用。现在可以使用 ExpansibleController
实现相同的功能。
背景
#ExpansionTileController
以编程方式展开和折叠 ExpansionTile
。小部件库中添加了一个新的 Expansible
小部件,其中包含展开和折叠行为的逻辑,而不依赖于 Material 库。ExpansibleController
是 Expansible
的补充,具有与 ExpansionTileController
相同的功能。此外,ExpansibleController
还支持添加侦听器并在其展开状态发生变化时通知它们。
在调试模式下运行时,使用 ExpansionTileController
的应用程序会显示以下错误:“请改用 ExpansibleController
。” 具体来说,这意味着用户应将 ExpansionTileController
的用法替换为 ExpansibleController
。
迁移指南
#要进行迁移,请将 ExpansionTile
的 controller
参数从 ExpansionTileController
替换为 ExpansibleController
。与 ExpansionTileController
不同,ExpansibleController
是一个 ChangeNotifier
,因此请记住处置新的 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