flutter - 我想以编程方式调用我的 appdrawer 中的页面
问题描述
我想在不使用抽屉的情况下在另一个页面中单击按钮时调用我的 appdrawer 中的页面。那是当提交想要重定向到我的appdrawer中的另一个页面时。我的导航课
import 'package:crypto_app/app_theme.dart';
import 'package:crypto_app/custom_drawer/drawer_user_controller.dart';
import 'package:crypto_app/custom_drawer/home_drawer.dart';
import 'package:flutter/material.dart';
class NavigationHomeScreen extends StatefulWidget {
@override
_NavigationHomeScreenState createState() => _NavigationHomeScreenState();
}
class _NavigationHomeScreenState extends State<NavigationHomeScreen> {
late Widget screenView;
late DrawerIndex drawerIndex;
@override
void initState() {
drawerIndex = DrawerIndex.HOME;
screenView = HomePage();
super.initState();
}
@override
Widget build(BuildContext context) {
return Container(
//color: AppTheme.nearlyWhite,
child: SafeArea(
top: false,
bottom: false,
child: Scaffold(
backgroundColor: AppTheme.nearlyWhite,
body: DrawerUserController(
screenIndex: drawerIndex,
drawerWidth: MediaQuery.of(context).size.width * 0.75,
onDrawerCall: (DrawerIndex drawerIndexdata) {
changeIndex(drawerIndexdata);
//callback from drawer for replace screen as user need with passing DrawerIndex(Enum index)
},
screenView: screenView,
//we replace screen view as we need on navigate starting screens like MyHomePage, HelpScreen, FeedbackScreen, etc...
),
),
),
);
}
void changeIndex(DrawerIndex drawerIndexdata) {
if (drawerIndex != drawerIndexdata) {
drawerIndex = drawerIndexdata;
if (drawerIndex == DrawerIndex.HOME) {
setState(() {
screenView = HomePage();
});
} else if (drawerIndex == DrawerIndex.Transaction) {
setState(() {
screenView = TransactionsScreen();
});
}else if (drawerIndex == DrawerIndex.Help) {
setState(() {
screenView = HelpScreen();
});
} else if (drawerIndex == DrawerIndex.FeedBack) {
setState(() {
screenView = FeedbackScreen();
});
} else if (drawerIndex == DrawerIndex.Invite) {
setState(() {
screenView = InviteFriend();
});
} else {
//do in your way......
}
}
}
}
现在我想通过单击按钮在另一个页面中调用它而不使用抽屉来利用抽屉中的页面之一
解决方案
推荐阅读
- python - 如何让music21 演奏特定的乐器?
- python - 如何使用 Arrow 对 CSV 进行分块?
- sql - 交换两列数据的案例语句
- swiftprotobuf - 将 Google_Protobuf_Struct 转换为特定的消息类型
- c# - 如何使用 Azure.Net SDK/Fluent API 调整虚拟机磁盘大小
- kubernetes - 由于 PROVIDER_HYPERV_NOT_FOUND,无法启动 minikube 并退出
- python - 我想制作 .exe 文件,但遇到错误
- bitbucket - 手动解决一次合并冲突后,bitbucket 中的自动分叉同步会起作用吗?
- javascript - 用于 UI 测试的夹具(JSON 文件)
- codeigniter - 在 CodeIgniter 框架中访问任何控制器变量和访问是一种好习惯吗?