已弃用的 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