更改从外部返回的抽屉小部件的抽屉图标 Class

Change Drawer Icon of Drawer Widget being returned from an external Class

我正在尝试更改 Dart 中抽屉小部件的图标和颜色。我已经找到了方法,但 none 适用于我的场景。我的自定义抽屉小部件正在从另一个 class 返回,因此我无法更改应用栏所在的主页 class 中的前导图标,否则它将替换我当前的抽屉。我不会展示所有代码,因为我认为没有必要。任何帮助将不胜感激。

我当前的抽屉和调用方法:

抽屉class:

import 'package:flutter/material.dart';
import 'package:new_app/Users.dart';
import '../main.dart';

class MainDrawer extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Drawer(
      child: Column(
        children: <Widget>[
          Container(
            width: double.infinity,
            padding: EdgeInsets.all(20),
            color: Theme.of(context).primaryColor,
            child: Center(
              child: Column(
                children: [
                  Container(

菜单Class/首页:

import 'screens/drawer_main.dart';

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  @override
  Widget build(BuildContext context) {
    return WillPopScope(
        onWillPop: () {
          return new Future(() => false);
        },
        child: Scaffold(
          backgroundColor: Colors.blueGrey[900],
          appBar: AppBar(
            //backgroundColor: Colors.blueGrey[900],
            backgroundColor: Colors.transparent,
            automaticallyImplyLeading: true,
            title: Text(
              "Home Page",
              style: TextStyle(color: Colors.white),
            ),

            actions: <Widget>[
              //Profile Pic
              IconButton(
                icon: Icon(Icons.circle, color: Colors.white),
                tooltip: 'Comment Icon',
                onPressed: () {},
              ),
              MainPopUp(), //IconButton
            ],
            //IconButton
            brightness: Brightness.dark,
          ),
          //Current Method of Calling the Drawer: 
          drawer: MainDrawer(),
          body: Center(

在内部添加前导 AppBar() 并以编程方式打开抽屉。

AppBar(
  leading: InkWell(
      child: Icon(
      //your preferred icon
      Icons.camera
     ),
     onTap: () {
         Scaffold.of(context).openDrawer();
     },
  ),
)

在应用栏中添加前导 属性,然后以编程方式调用抽屉小部件。

Scaffold(
      backgroundColor: Colors.blueGrey[900],
      appBar: AppBar(
        //backgroundColor: Colors.blueGrey[900],
         leading: Builder(
          builder: (context) => IconButton(
            icon: Icon(Icons.menu_rounded),
            onPressed: () => Scaffold.of(context).openDrawer(),
          ),
        ),
        backgroundColor: Colors.transparent,
        automaticallyImplyLeading: true,
        title: Text(
          "Home Page",
          style: TextStyle(color: Colors.white),
        ),

        actions: <Widget>[
          //Profile Pic
          IconButton(
            icon: Icon(Icons.circle, color: Colors.white),
            tooltip: 'Comment Icon',
            onPressed: () {},
          ),
          MainPopUp(), //IconButton
        ],
        //IconButton
        brightness: Brightness.dark,
      ),
      //Current Method of Calling the Drawer: 
      drawer: MainDrawer(),