在Flutter中,可以通过使用Navigator来获取CupertinoTabView的当前路由名称。
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
CupertinoTabView(
navigatorKey: navigatorKey,
...
)
String currentRouteName = navigatorKey.currentState!.currentRoute;
完整示例代码如下:
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
@override
Widget build(BuildContext context) {
return MaterialApp(
home: CupertinoTabScaffold(
tabBar: CupertinoTabBar(
items: [
BottomNavigationBarItem(icon: Icon(Icons.home)),
BottomNavigationBarItem(icon: Icon(Icons.settings)),
],
),
tabBuilder: (BuildContext context, int index) {
return CupertinoTabView(
navigatorKey: navigatorKey,
builder: (BuildContext context) {
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
middle: Text('Tab $index'),
),
child: Center(
child: CupertinoButton(
child: Text('Go to Page'),
onPressed: () {
navigatorKey.currentState!.push(
CupertinoPageRoute(builder: (BuildContext context) {
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
middle: Text('Page'),
),
child: Center(
child: Text('This is a page.'),
),
);
}),
);
},
),
),
);
},
);
},
),
);
}
}
以上代码创建了一个拥有两个标签的CupertinoTabScaffold。每个标签对应一个CupertinoTabView,其中包含了一个CupertinoButton,点击按钮时会跳转到另一个页面。
在按钮的onPressed回调中,通过navigatorKey.currentState!.push方法将新页面推入导航栈中。通过navigatorKey.currentState!.currentRoute可以获取当前路由的名称。
请注意,此示例中未包含任何特定的腾讯云产品或链接地址,如果需要腾讯云相关产品的详细介绍和链接,请在获取当前路由名称的代码处根据具体需求添加相关信息。
领取专属 10元无门槛券
手把手带您无忧上云