Отрисовка меню продолжает возвращать две панели приложений. Как вернуть только один? - PullRequest
0 голосов
/ 24 апреля 2020

В настоящее время у меня есть меню выдвижного ящика, которое легко переключается между страницами. Кажется, все работает, за исключением того, что когда я go на назначенную страницу, он возвращает две панели приложений.

Как вы можете видеть (посмотрите на изображение), enter image description here

отображаются две панели приложений. Я хочу полностью удалить синюю панель и получить значок на белой панели приложения переключите контроллер (посмотрите на предоставленный код)

Как я смогу это сделать? Я знаю, что это как-то связано с возвратным скаффолдом и панелью приложения, но я понятия не имею, как удалить это, не ломая приложение.

Спасибо,

Стефан

Код:

import 'package:mykitchen/Main Controllers/My Recipes/My Recipes.dart';
import 'hidden_drawer_menu.dart';
import 'package:mykitchen/Main Controllers/Settings+Acount/Settings.dart';
import 'package:mykitchen/Main Controllers/GroceryList/GroceryList.dart';
import 'package:mykitchen/Main Controllers/Pantry/Pantry.dart';
import 'package:mykitchen/Main Controllers/Meal Plan/MealPlan.dart';
import 'package:mykitchen/Main Controllers/Recipets/Recipets.dart';

class ExampleCustomMenu extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return SimpleHiddenDrawer(

      menu: Menu(),

      screenSelectedBuilder: (position, controller) {
        Widget screenCurrent;
        switch (position) {
          case 0:
            screenCurrent = Settings();
            break;
          case 1:
            screenCurrent = MyRecipes();
            break;
          case 2:
            screenCurrent = GroceryList();
            break;
          case 3:
            screenCurrent = Pantry();
            break;
          case 4:
            screenCurrent = MealPlan();
            break;
          case 5:
            screenCurrent = Recipets();
            break;
        }

        return Scaffold(
          appBar: AppBar(
            title: Text("Look at this "),

            leading: IconButton(
                icon: Icon(Icons.menu),
                onPressed: () {
                  controller.toggle();
                }),
          ),

          backgroundColor: Color(0xFFFF1744),
          body: screenCurrent,
        );
      },
    );
  }
}



class Menu extends StatefulWidget {
  @override
  _MenuState createState() => _MenuState();
}

class _MenuState extends State<Menu> with TickerProviderStateMixin {
  AnimationController _animationController;
  bool initConfigState = false;


  @override
  void initState() {
    _animationController =
        AnimationController(vsync: this, duration: Duration(milliseconds: 100));
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    confListenerState(context);

    return Container(
      width: double.maxFinite,
      height: double.maxFinite,
      color: Colors.red,
      child: Stack(
        children: <Widget>[
          Container(
            width: double.maxFinite,
            height: double.maxFinite,
          ),
          FadeTransition(
            opacity: _animationController,
            child: Padding(
              padding: const EdgeInsets.all(50.0),
              child: Align(
                alignment: Alignment.centerLeft,
                child: Column(
                  mainAxisSize: MainAxisSize.min,
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: <Widget>[
                    SizedBox(
                      width: 200.0,
                      height: 150,
                      child: RaisedButton(
                        color: Colors.white,
                        shape: RoundedRectangleBorder(
                            borderRadius:
                                BorderRadius.all(Radius.circular(10.0))),
                        onPressed: () {
                          SimpleHiddenDrawerProvider.of(context)
                              .setSelectedMenuPosition(0);
                        },
                        child: Text(
                          "Settings",
                          style: TextStyle(color: Colors.black),
                        ),
                      ),
                    ),
                    SizedBox(
                      width: 200.0,
                      child: RaisedButton(
                          color: Colors.white,
                          shape: RoundedRectangleBorder(
                              borderRadius:
                                  BorderRadius.all(Radius.circular(10.0))),
                          onPressed: () {
                            SimpleHiddenDrawerProvider.of(context)
                                .setSelectedMenuPosition(1);
                          },
                          child: Text(
                            "My Recipes",
                            style: TextStyle(color: Colors.black),
                          )),
                    ),
                    SizedBox(
                      width: 200.0,
                      child: RaisedButton(
                          color: Colors.white,
                          shape: RoundedRectangleBorder(
                              borderRadius:
                                  BorderRadius.all(Radius.circular(10.0))),
                          onPressed: () {
                            SimpleHiddenDrawerProvider.of(context)
                                .setSelectedMenuPosition(2);
                          },
                          child: Text(
                            "Grocery List",
                            style: TextStyle(color: Colors.black),
                          )),
                    ),
                    SizedBox(
                      width: 200.0,
                      child: RaisedButton(
                          color: Colors.white,
                          shape: RoundedRectangleBorder(
                              borderRadius:
                                  BorderRadius.all(Radius.circular(10.0))),
                          onPressed: () {
                            SimpleHiddenDrawerProvider.of(context)
                                .setSelectedMenuPosition(3);
                          },
                          child: Text(
                            "Pantry",
                            style: TextStyle(color: Colors.black),
                          )),
                    ),
                    SizedBox(
                      width: 200.0,
                      child: RaisedButton(
                          color: Colors.white,
                          shape: RoundedRectangleBorder(
                              borderRadius:
                                  BorderRadius.all(Radius.circular(10.0))),
                          onPressed: () {
                            SimpleHiddenDrawerProvider.of(context)
                                .setSelectedMenuPosition(4);
                          },
                          child: Text(
                            "Meal Plan",
                            style: TextStyle(color: Colors.black),
                          )),
                    ),
                    SizedBox(
                      width: 200.0,
                      child: RaisedButton(
                          color: Colors.white,
                          shape: RoundedRectangleBorder(
                              borderRadius:
                                  BorderRadius.all(Radius.circular(10.0))),
                          onPressed: () {
                            SimpleHiddenDrawerProvider.of(context)
                                .setSelectedMenuPosition(5);
                          },
                          child: Text(
                            "Recipets",
                            style: TextStyle(color: Colors.black),
                          )),
                    ),
                  ],
                ),
              ),
            ),
          ),
        ],
      ),
    );
  }

  void confListenerState(BuildContext context) {
    if (!initConfigState) {
      initConfigState = true;
      SimpleHiddenDrawerProvider.of(context)
          .getMenuStateListener()
          .listen((state) {
        if (state == MenuState.open) {
          _animationController.forward();
        }

        if (state == MenuState.closing) {
          _animationController.reverse();
        }
      });
    }
  }
}```



1 Ответ

1 голос
/ 24 апреля 2020

Вы можете использовать Scaffold без указания AppBar. Как это:

Scaffold(
  // AppBar used to be here. Now it's not.
  backgroundColor: Color(0xFFFF1744),
  body: screenCurrent,
);

Узнайте больше о лесах из здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...