成功登录后,页面上的appbar中有一个后退按钮。在许多类似的问题中,人们使用Navigator,但我没有使用Navigator。所以我认为问题在于屏幕是堆叠的,而不是导航仪。我认为最好是initState或SetState,而不是构建,但我不知道该做什么。
为了告诉你关于我的应用程序,登录屏幕不会出现在我一打开应用程序。(登录屏幕不是第一个屏幕。)如果输入底部导航栏的Page5并按登录按钮,就会出现注册屏幕,成功登录后,返回到HomePage上的底部导航栏的Page1。
我使用firebaseui包轻松地实现了登录屏幕。
谢谢您的答复。
下面是Page5.省
class Page5 extends StatefulWidget {
const Page5({Key? key}) : super(key: key);
@override
State<Page5> createState() => _Page5State();
}
class _Page5State extends State<Page5> {
final providerConfigs = [EmailProviderConfiguration()];
@override
Widget build(BuildContext context) {
return
FirebaseAuth.instance.currentUser == null
? Page5_null()
: Page5_on();
}
}下面是authentication.dart
class Authentication extends StatelessWidget {
const Authentication({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: FirebaseAuth.instance.authStateChanges(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return SignInScreen(
providerConfigs: [EmailProviderConfiguration()],);
}
return HomePage();
);
}
}下面是homepage.dart
class HomePage extends StatefulWidget {
const HomePage({Key? key}) : super(key: key);
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
var _index = 0;
final _pages = [
Ppage1(),
const Page2(),
const Page3(),
const Page4(),
const Page5(),
]; ...发布于 2022-10-12 03:24:55
firebaseui包使您的生活更容易实现,但您不知道如何处理一些问题。但是为了解决你的案子,我想把主要的图标从AppBar中移除。
发布于 2022-10-12 04:00:21
要删除AppBar中的后退按钮,只需传递
automaticallyImplyLeading: false,请记住使用Navigator.pushReplacement()而不是Navigator.push()移除所有堆栈和推送,希望能完成这项工作。
发布于 2022-10-12 04:08:12
当您登录后导航到主屏幕时,请始终删除所有以前的屏幕,我建议您使用,
Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (context) =>LoginScreen()), (Route<dynamic> route) => false);https://stackoverflow.com/questions/74036120
复制相似问题