Я пытаюсь скрыть Container
в своем приложении, когда пользователь входит в систему, но мой пользовательский интерфейс не изменится, даже если я использую onAuthStateChanged
или setState()
Я использую StreamBuilder
в моем main.dart
, и я использую зависимость, аналогичную гамбургер-меню (https://pub.dev/packages/kf_drawer), которое передает переменную, которая определяет Visibility
моего Container
return MaterialApp(
home: StreamBuilder(
stream: FirebaseAuth.instance.onAuthStateChanged,
builder: (_, snap) {
if (snap.connectionState == ConnectionState.active) {
if (snap.data != null) {
return DrawerMenu(firebaseUser: snap.data, visibleLogin: false);
} else {
return DrawerMenu(firebaseUser: null, visibleLogin: true);
}
} else {
return CircularProgressIndicator();
}
},
),
);
Это мой код, в котором пользователь firebase сначала переходит к DrawerMenu()
, а затем к моим Home()
,
KFDrawerItem.initWithPage(
text: Text(
'Home',
style: TextStyle(color: Colors.white),
),
icon: Icon(Icons.settings, color: Colors.white),
page: Home(
firebaseUser: widget.firebaseUser,
visibleLogin: widget.visibleLogin,
),
),
Это код для моего Container
, однако мой пользовательский интерфейс не будет обновляться, как только мой пользователь входит в систему, а только когда я просматриваю другие страницы в своем приложении, а также состояние приложения не сохраняется, когда я повторно открываю свое приложение после выхода из него.
//Simplified code for example purposes
Widget login(bool visibleLogin) {
return Visibility(
visible: visibleLogin,
child: Align(
alignment: Alignment.bottomCenter,
child: Container(),
),
);
}
Я хочу добиться чего-то вроде этого, нижний логин Container
исчезает, как только пользователь входит в систему.
ПЕРЕД ВХОДОМ - https://i.stack.imgur.com/BKfby.png
ПОСЛЕ ВХОДА - https://i.stack.imgur.com/5zMHB.png