中文介紹
三大功能
一、響應式狀態管理器
這就是你的計數變量。
var name = 'Jonatas Borges';
要想讓它變得可觀察,你只需要在它的末尾加上".obs"
。
var name = 'Jonatas Borges'.obs
;
而在UI中,當你想顯示該值并在值變化時更新頁面,只需這樣做。
Obx
(() => Text("${controller.name}"));
二、路由管理
跳轉路由
Get.to(NextScreen());
Get.toNamed('/details');
進入下一個頁面,但沒有返回上一個頁面的選項(用于閃屏頁,登錄頁面等)。
Get.off(NextScreen());
進入下一個頁面并取消之前的所有路由(在購物車、投票和測試中很有用)。
Get.offAll(NextScreen());返回
Get.back();
void gotoPage<T>(T page, {dynamic arguments}) async { // 通過這樣,介紹返回值 Get.back(result: value); // 走非Get.back(result: value)返回方式,會返回null var value = await Get.to(() => page, arguments: arguments); print("A頁面的返回值 $value"); }
三、依賴管理
// 使用Get.put()實例化你的類,使其對
當下的所有子路
由可用。
final Controller c = Get.put(Controller());// 使用Obx(()=>每當改變計數時,就更新Text()。
appBar: AppBar(title: Obx(() => Text("Clicks: ${c.count}"))),// 你可以讓Get找到一個正在被其他頁面使用的Controller,并將它返回給你。
final Controller c = Get.find();
高級API
// 給出當前頁面的args。
Get.arguments
//給出以前的路由名稱
Get.previousRoute
// 給出要訪問的原始路由,例如,rawRoute.isFirst()
Get.rawRoute
// 允許從GetObserver訪問Rounting API。
Get.routing
// 檢查 snackbar 是否打開
Get.isSnackbarOpen
// 檢查 dialog 是否打開
Get.isDialogOpen
// 檢查 bottomsheet 是否打開
Get.isBottomSheetOpen
// 刪除一個路由。
Get.removeRoute()
//反復返回,直到表達式返回真。
Get.until()
// 轉到下一條路由,并刪除所有之前的路由,直到表達式返回true。
Get.offUntil()
// 轉到下一個命名的路由,并刪除所有之前的路由,直到表達式返回true。
Get.offNamedUntil()
//檢查應用程序在哪個平臺上運行。
GetPlatform.isAndroid
GetPlatform.isIOS
GetPlatform.isMacOS
GetPlatform.isWindows
GetPlatform.isLinux
GetPlatform.isFuchsia
//檢查設備類型
GetPlatform.isMobile
GetPlatform.isDesktop
//所有平臺都是獨立支持web的!
//你可以知道你是否在瀏覽器內運行。
//在Windows、iOS、OSX、Android等系統上。
GetPlatform.isWeb
// 相當于.MediaQuery.of(context).size.height,
//但不可改變。
Get.height
Get.width
// 提供當前上下文。
Get.context
// 在你的代碼中的任何地方,在前臺提供 snackbar/dialog/bottomsheet 的上下文。
Get.contextOverlay
// 注意:以下方法是對上下文的擴展。
// 因為在你的UI的任何地方都可以訪問上下文,你可以在UI代碼的任何地方使用它。
// 如果你需要一個可改變的高度/寬度(如桌面或瀏覽器窗口可以縮放),你將需要使用上下文。
context.width
context.height
// 讓您可以定義一半的頁面、三分之一的頁面等。
// 對響應式應用很有用。
// 參數: dividedBy (double) 可選 - 默認值:1
// 參數: reducedBy (double) 可選 - 默認值:0。
context.heightTransformer()
context.widthTransformer()
/// 類似于 MediaQuery.of(context).size。
context.mediaQuerySize()
/// 類似于 MediaQuery.of(context).padding。
context.mediaQueryPadding()
/// 類似于 MediaQuery.of(context).viewPadding。
context.mediaQueryViewPadding()
/// 類似于 MediaQuery.of(context).viewInsets。
context.mediaQueryViewInsets()
/// 類似于 MediaQuery.of(context).orientation;
context.orientation()
///檢查設備是否處于橫向模式
context.isLandscape()
///檢查設備是否處于縱向模式。
context.isPortrait()
///類似于MediaQuery.of(context).devicePixelRatio。
context.devicePixelRatio()
///類似于MediaQuery.of(context).textScaleFactor。
context.textScaleFactor()
///查詢設備最短邊。
context.mediaQueryShortestSide()
///如果寬度大于800,則為真。
context.showNavbar()
///如果最短邊小于600p,則為真。
context.isPhone()
///如果最短邊大于600p,則為真。
context.isSmallTablet()
///如果最短邊大于720p,則為真。
context.isLargeTablet()
///如果當前設備是平板電腦,則為真
context.isTablet()
///根據頁面大小返回一個值<T>。
///可以給值為:
///watch:如果最短邊小于300
///mobile:如果最短邊小于600
///tablet:如果最短邊(shortestSide)小于1200
///desktop:如果寬度大于1200
context.responsiveValue<T>()