【问题标题】:transitions between pages in flutter颤动中页面之间的转换
【发布时间】:2021-02-16 14:23:39
【问题描述】:

我是 Flutter 和 java 脚本的新手。所以我的经验很少。我想写一个小应用程序。我制作了 2 页,其中在 api 上提取了封条列表和对象列表。但我希望能够通过侧边菜单浏览这些页面。我创建了这个菜单。但我无法从此菜单转到另一页。这是我的应用程序(主要)。我会很感激你的帮助。

import 'package:flutter/material.dart';
import 'package:flutter_app_seals/model/object_list/JsonObject.dart';
import 'package:flutter_app_seals/model/seals_list/JsonSeals.dart';

void main() {
  runApp(Mains());

}


class Mains extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        debugShowCheckedModeBanner: false,
        home: Scaffold(
            appBar: AppBar(
            centerTitle: true,
              title: Text('Seals Log'),
    ),
              drawer: Drawer(
               child: ListView(
               children: <Widget>[
                    ListTile(
                      title: Text("Seals List"),
                      trailing: Icon(Icons.arrow_back),
                        onTap:() {
                          Navigator.push(
                            context,
                            MaterialPageRoute(builder: (context) => Seals()),
                          );
                        }

                    ),
                      ListTile(
                        title: Text("Object List"),
                        trailing: Icon(Icons.arrow_downward),
                          onTap:() {
                            Navigator.push(
                              context,
                              MaterialPageRoute(builder: (context) => Object()),
                            );
                          }
                      )
                ],
             ),
           ),

         )
    );
  }
}
class Seals extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        debugShowCheckedModeBanner: false,
        home:JsonParseSeals(),
      
    );
  }
}

class Object extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        debugShowCheckedModeBanner: false,
        home:JsonParseObject()
    );
  }
}
错误:

======== Exception caught by gesture ===============================================================
The following assertion was thrown while handling a gesture:
Navigator operation requested with a context that does not include a Navigator.

The context used to push or pop routes from the Navigator must be that of a widget that is a descendant of a Navigator widget.
When the exception was thrown, this was the stack: 
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 231:49  throw_
packages/flutter/src/widgets/navigator.dart 2690:9                            <fn>
packages/flutter/src/widgets/navigator.dart 2696:14                           of
packages/flutter/src/widgets/navigator.dart 2095:34                           push
packages/flutter_app_seals/main.dart 41:39                                    <fn>
...
Handler: "onTap"
Recognizer: TapGestureRecognizer#d2f91
  debugOwner: GestureDetector
  state: ready
  won arena
  finalPosition: Offset(63.0, 65.0)
  finalLocalPosition: Offset(63.0, 17.0)
  button: 1
  sent tap down
====================================================================================================

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    onTap 操作添加到您的ListTile

    ListTile(
      title: Text("Seals list"),
      trailing: Icon(Icons.arrow_back),
      onTap() {
        Navigator.push(
          context,
          MaterialPageRoute(builder: (context) => Object_list()),
        );
      }
    ),
    

    您可以在Official Documentation阅读更多内容。

    【讨论】:

    • 谢谢,我试过了,但是“上下文”这个词有错误,我不明白为什么!
    • 你在哪里定义ListTile
    • 我举了上面代码的例子,改了一点,现在什么都没有下划线了,但是还是没有生成到第二页。
    • 您能否在问题或 cmets 中发布错误?
    • 我添加了关于点击时出现的问题的消息。
    猜你喜欢
    • 2021-01-18
    • 2020-02-18
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多