Flutter GetX网络路由



我想知道是否可以在访问另一个屏幕之前推送我的初始路线屏幕。这是我第一次使用flutter web和GetX,我不知道这是否是我想要的行为。

就目前而言,当我尝试通过键入http://localhost:64289/transaction/1直接从URL访问TransactionDetailPage时,它不会推送我的MainHomePage屏幕。当我以这种方式访问TransactionDetailPageAppBar时,它中没有后退按钮。

每当用户试图直接从URL访问其他页面时,我想做的是在屏幕的第一个堆栈上按下MainHomePage,所以总是有一个后退按钮将当前屏幕弹出到我的主页。我怎样才能做到这一点?

main.dart

Widget build(BuildContext context) {
return GetMaterialApp(
title: 'Flutter test',
debugShowCheckedModeBanner: false,
initialRoute: '/',
getPages: [
GetPage(
name: '/',
page: () => MainHomePage(),
),
GetPage(
name: '/transaction/:id',
page: () => TransactionDetailPage(),
),
],
);
}

给MainHomePage一个路由名称,如下所示:

GetPage(
name: '/home',
page: () => MainHomePage(),
),

同时更改初始路线:initialRoute: '/home'

使用Get.toNamed('/transaction');导航到交易页面。

也可以使用Get.back();返回主页。

class MyApp extends StatelessWidget {
var _isLoged = GetStorage();
@override
Widget build(BuildContext context) {
return GetMaterialApp(
initialBinding: HomeBinding(),
debugShowCheckedModeBanner: false,
title: 'Your project name',
getPages: AppPages.pages,
initialRoute: '/home',
);
}
}

//创建根文件夹并添加app_routs.art

class AppRoutes {
static const HOME = '/home';
}

//最重要的是执行以下步骤//创建根>app_page.dart并添加此代码

final _binding = HomeBinding();
class AppPages {
static final home = GetPage(
name: AppRoutes.HOME,
page: () => Home(),
binding: _binding,
);
static final List<GetPage> pages = [
home,
];
}

相关内容

  • 没有找到相关文章

最新更新