【问题标题】:Flutter Next Level Button颤动下一级按钮
【发布时间】:2022-01-13 06:12:16
【问题描述】:

我创建了一个按钮,我需要当用户按下按钮时,将他从他所在的级别发送到下一个级别,我的应用程序有 300 个级别,如果用户处于级别 1,并且他按下该按钮,它将把他送到第二层。这是所有级别按钮的屏幕][1],这是级别按钮的图像[][2],所以这个按钮只需将用户发送到下一个级别.

child: GridView.count(
                          crossAxisCount: 4,
                          children: List.generate(data!.length, (index) {
                            return InkWell(
                              splashColor: Colors.blue.withAlpha(20),
                              onTap: () {
                                Navigator.push(
                                    context,
                                    MaterialPageRoute(
                                        builder: (context) =>
                                            RenditFjaletButton(
                                              QuizList: data[index].word,
                                            )));
                              },
                              child: Card(
                                elevation: 3.0,
                                margin: EdgeInsets.all(7.0),
                                shape: RoundedRectangleBorder(
                                    borderRadius: BorderRadius.circular(20.0)),
                                child: Container(
                                  child: Align(
                                      alignment: Alignment.center,
                                      child: Container(
                                        child: Text(
                                          '${index + 1}',
    And here is the Code for the button
    
                                                     child: FlatButton(
                                                          onPressed: () {
                                                            null;
                                                          },
                                                          child: Image.asset(
                                                            'assets/next_small.png',
                                                            height: 80,
                                                            width: 80,
                                                          ),
                                                        ),

【问题讨论】:

  • 您面临的问题是什么?
  • 我不知道如何在按下按钮时将用户发送到下一个级别,如果他在43级,将他发送到44级
  • 你喜欢在RenditFjaletButton上发送数据吗?
  • onPressed (){ Navigator.push( context, MaterialPageRoute( builder: (context) => RenditFjaletButton( QuizList: data[index].word, )));如果我将 QuizList: data[index].word 更改为喜欢 QuizList: data[1].word,当我按下按钮时,它将显示第二级的单词,而不是我只需要我正确的级别现在 +1 的话
  • 您试图将下一级(按钮)的数据发送到另一个屏幕...!!?只需增加索引,例如onPressed (){ Navigator.push( context, MaterialPageRoute( builder: (context) => RenditFjaletButton( QuizList: data[index+1].word, ))); }

标签: flutter dart flutter-layout flutter-dependencies


【解决方案1】:

你可以简单地使用它

Navigator.push(context, new MaterialPageRoute(
  builder: (context) => Page2()
));

您可以在 page2 的位置放置您要导航的页面名称。

【讨论】:

    【解决方案2】:

    push上的索引加一

     RenditFjaletButton( QuizList: data[index+1].word, )))
    

    对于最后一个索引,在屏幕上显示游戏。

    您可以通过在 RenditFjaletButton 类上添加 ? 并删除 required 或创建另一个 bool 变量(如 isGameOver)来使 QuizList 可以为空

    RenditFjaletButton( QuizList: data[index+1].word,
      isGameOver: data[index+1].word>data.length )))
    

    这是一个基于第二个屏幕增加索引的测试小部件。

    class _TState extends State<T> {
      bool _gotoNextLevel = false;
      // on new page it will set to false again
      @override
      Widget build(BuildContext context) {
        return Scaffold(
            backgroundColor: Colors.white,
            floatingActionButton: ElevatedButton(
                child: Text("L1"),
                onPressed: () {
                  showDialog(
                    context: context,
                    builder: (context) {
                      return AlertDialog(
                        content: Column(
                          mainAxisSize: MainAxisSize.min,
                          children: [
                            ElevatedButton(
                                onPressed: () {
                                  setState(() {
                                    _gotoNextLevel = true;
                                  });
                                  Navigator.of(context).pop(); 
                                },
                                child: Text("1")),
                            ElevatedButton(
                                onPressed: () {
                                  Navigator.of(context).pop();
                                },
                                child: Text("+cancel")),
                          ],
                        ),
                      );
                    },
                  );
                }),
            body: Center(
              child: Text("Current level ${1 + (_gotoNextLevel ? 1 : 0)}"),
            ));
      }
    }
    

    【讨论】:

      【解决方案3】:

      您可以使用Navigator.push()。查看Flutter Docs on Navigation 以将这些功能添加到您的应用中。

      【讨论】:

      • 当我使用它时,如果我做 QuizList: data[1].word,当我按下按钮时它会显示第二级的单词,我只需要我现在的水平+1 的话。
      • 在这种情况下,您应该创建一个变量来存储级别。使按钮具有onPressed: () { yourVariable++; }作为功能。
      猜你喜欢
      • 1970-01-01
      • 2020-12-16
      • 2023-04-03
      • 2020-04-12
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-08
      相关资源
      最近更新 更多