在 Fluttergo_router包中,顯然有兩種創建新頁面的方法,使用 abuilder或 a pageBuilder:
GoRoute(
name: 'Route',
path: '/route',
builder: (BuildContext context, GoRouterState state) =>
const RouteView(...),
pageBuilder: (BuildContext context, GoRouterState state) =>
MaterialPage(
child: const RouteView(...),
),
),
但是它們之間有什么區別呢?他們似乎在做同樣的事情,只是上面pageBuilder有一個包裝MaterialPage,就是這樣嗎?順便說一句,MaterialPage那有用嗎?
uj5u.com熱心網友回復:
我也有同樣的問題。從 GoRouter 的檔案中,我發現了這一切:
構建器負責構建 Widget 以在螢屏上顯示。或者,您可以使用 pageBuilder 在該路由變為活動狀態時自定義過渡影片。頁面之間使用默認轉換,具體取決于其視窗小部件樹頂部的應用程式,例如,使用 MaterialApp 將導致 go_router 使用 MaterialPage 轉換。考慮將 pageBuilder 用于自定義 Page 類。
所以我想我能推斷出的唯一有用的區別是 pageBuilder 允許你有一個自定義的過渡影片。希望有幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/530970.html
標籤:扑镖路线颤振路由器
