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