首页 > 解决方案 > 我想以编程方式调用我的 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......
      }
    }
  }
}

现在我想通过单击按钮在另一个页面中调用它而不使用抽屉来利用抽屉中的页面之一

标签: flutter

解决方案


推荐阅读