В настоящее время у меня есть меню выдвижного ящика, которое легко переключается между страницами. Кажется, все работает, за исключением того, что когда я go на назначенную страницу, он возвращает две панели приложений.
Как вы можете видеть (посмотрите на изображение),
отображаются две панели приложений. Я хочу полностью удалить синюю панель и получить значок на белой панели приложения переключите контроллер (посмотрите на предоставленный код)
Как я смогу это сделать? Я знаю, что это как-то связано с возвратным скаффолдом и панелью приложения, но я понятия не имею, как удалить это, не ломая приложение.
Спасибо,
Стефан
Код:
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();
}
});
}
}
}```