首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤振:按下按钮无法更改页面。

颤振:按下按钮无法更改页面。
EN

Stack Overflow用户
提问于 2021-12-05 04:37:47
回答 2查看 545关注 0票数 1

大家好,大家好,我仍然在学习颤振,为什么在我的代码中按下更改页面的函数不起作用,我试着使用routeName流来更改每个页面,下面是我的代码

sign_in_screen.dart

代码语言:javascript
复制
    import 'package:flutter/material.dart';
    
    class SignInScreen extends StatelessWidget {
      static String routeName = "/sign_in";
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(),
        );
      }
    }

routs.dart

代码语言:javascript
复制
import 'package:accone/screens/splash/splash_screen.dart';
import 'package:accone/screens/sign_in/sign_in_screen.dart';
import 'package:flutter/widgets.dart';

final Map<String, WidgetBuilder> routes = {
  SplashScreen.routeName: (context) => SplashScreen(),
  SignInScreen.routeName: (context) => SignInScreen(),
};

和body.dart上的按钮

代码语言:javascript
复制
 @override
  Widget build(BuildContext context) {
    return SafeArea(
        child: SizedBox(
            width: double.infinity,
            child: Column(
              children: <Widget>[
                Expanded(
                  flex: 3,
                  child: PageView.builder(
                      onPageChanged: (value) {
                        setState(() {
                          currentPage = value;
                        });
                      },
                      itemCount: splashData.length,
                      itemBuilder: (context, index) => SplashContent(
                          image: splashData[index]["image"] ?? '',
                          text: splashData[index]["text"] ?? '')),
                ),
                Expanded(
                  flex: 2,
                  child: Padding(
                    padding: EdgeInsets.symmetric(
                        horizontal: getProportionateScreenWidth(20)),
                    child: Column(
                      children: <Widget>[
                        Spacer(),
                        Row(
                          mainAxisAlignment: MainAxisAlignment.center,
                          children: List.generate(
                            splashData.length,
                            (index) => buildDot(index: index),
                          ),
                        ),
                        Spacer(flex: 3),
                        DefaultButton(
                          text: 'Join Now',
                          press: () {
                            Navigator.pushNamed(
                                context, SignInScreen.routeName);
                          },
                        ),
                        Spacer(),
                      ],
                    ),
                  ),
                )
              ],
            )));
  }

在body.dart上,我已经导入了所需的所有包

代码语言:javascript
复制
import 'package:accone/components/default_button.dart';
import 'package:accone/constants.dart';
import 'package:accone/screens/sign_in/sign_in_screen.dart';
import 'package:accone/screens/splash/components/splash_content.dart';
import 'package:accone/size_config.dart';
import 'package:flutter/material.dart';

在按钮上,我试图使用Navigator.pushNamedNavigator.pushReplacementNamed(context, '/route')Navigator.pushAndRemoveUntil,但仍然不能在移动上更改页面

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-05 11:13:21

这起作用了,但我将按钮代码更改为:

代码语言:javascript
复制
 ElevatedButton(
            onPressed: () {
                 Navigator.pushNamed(
                      context, SignInScreen.routeName);
                          },
                child: const Text('Join Now'),
               ),
票数 0
EN

Stack Overflow用户

发布于 2021-12-05 08:46:39

请将这些路由添加到您的MaterialApp Widget中,您可以按照以下代码来实现:

代码语言:javascript
复制
return MaterialApp(
            title: 'Your App',
            debugShowCheckedModeBanner: false,
            initialRoute: SplashScreen.routeName,
            routes: {
              SplashScreen.routeName: (context) => SplashScreen(),
              SignInScreen.routeName: (context) => SignInScreen(),
            },
          );

您可以在MaterialApp文件中找到main.dart小部件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70231522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档