我试着用"Flutter 方式"重新创建速度代码,但当我试图导航到下一个屏幕时,显示"‘!_DEBUGLOCKED’:IS NOT TRUE". 我试过把.POP和其他各种东西放进go ,但它们不起作用,寻找其他解决方案也没有真正做到这一点.

Code

@override
Widget build(BuildContext context) {
  return SingleChildScrollView(
    scrollDirection: Axis.horizontal,
    child: Row(
      children: [
        RecommendPl(
            image: "assets/images/Orchideen.jpg",
            title: "Oscar",
            plant: "Orchideen",
            press: () {
              Navigator.push(
                context,
                MaterialPageRoute(
                  builder: (context) => DetailsScreen(),
                ),
              );
            }),
        RecommendPl(
            image: "assets/images/Orchideen.jpg",
            title: "Oscar",
            plant: "Orchideen",
            press: () {
              Navigator.push(
                context,
                MaterialPageRoute(
                  builder: (context) => DetailsScreen(),
                ),
              );
            }),
        RecommendPl(
            image: "assets/images/Orchideen.jpg",
            title: "Oscar",
            plant: "Orchideen",
            press: () {
              Navigator.push(
                context,
                MaterialPageRoute(
                  builder: (context) => DetailsScreen(),
                ),
              );
            }),
      ],
    ),
  );
}

class RecommendPl extends StatelessWidget {
  const RecommendPl({
    Key? key, required this.image, required this.title, required this.plant, required this.press,
  }) : super(key: key);

  final String image, title, plant;
  final Function press;

  @override

  Widget build(BuildContext context) {
    Size size = MediaQuery.of(context).size;

    return Container(
        margin: EdgeInsets.only(
          left: kDefaultPadding,
          top: kDefaultPadding/2,
          bottom: kDefaultPadding * 2.5,
        ),
        width: size.width * 0.4,
        child: Column(
          children: <Widget>[
            Image.asset(image,
            ),
            GestureDetector(
              onTap: press(),
              child: Container(
                padding: EdgeInsets.all(kDefaultPadding / 2),
                decoration: BoxDecoration(
                  color: Colors.white,
                  borderRadius: BorderRadius.only(
                    bottomLeft: Radius.circular(10),
                    bottomRight: Radius.circular(10),
                  ),
                  boxShadow: [BoxShadow(offset: Offset(0, 10),
                    blurRadius: 50,
                    color: kPrimaryColor.withOpacity(0.23),
                  ),
                  ],
                ),
                child: Row(
                  children: [
                    RichText(text: TextSpan(
                        children: [
                          TextSpan(
                            text: "$title\n".toUpperCase(),
                            style: Theme.of(context).textTheme.button,
                          ),
                          TextSpan(
                              text: "$plant".toUpperCase(),
                              style: TextStyle(
                                  color: kPrimaryColor.withOpacity(0.5)
                              )
                          )
                        ]
                    )
                    )
                  ],
                ),
              ),
            )
          ],
        ));
  }
}


Error

 "======== Exception caught by widgets library =======================================================
The following assertion was thrown building Navigator-[GlobalObjectKey<NavigatorState> _WidgetsAppState#93b21](dirty, dependencies: [HeroControllerScope, UnmanagedRestorationScope], state: NavigatorState#6528f(tickers: tracking 2 tickers)):
'package:flutter/src/widgets/navigator.dart': Failed assertion: line 5203 pos 12: '!_debugLocked': is not true.


Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

The relevant error-causing widget was: 
  MaterialApp MaterialApp:file:///F:/Projekte/Flutter/Cracker/lib/main.dart:17:12
When the exception was thrown, this was the stack: 
#2      NavigatorState.build (package:flutter/src/widgets/navigator.dart:5203:12)
#3      StatefulElement.build (package:flutter/src/widgets/framework.dart:4992:27)
#4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4878:15)
#5      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#6      Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#7      StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#8      Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#9      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)"

推荐答案

您喜欢调用press方法,当它被按下而不是构建时,

更换

GestureDetector(
  onTap: press(),

使用

GestureDetector(
  onTap: press,

GestureDetector(
  onTap: (){
    press();
  }

Flutter相关问答推荐

从Flutter应用程序解释蓝牙BLE数据:了解Sylvania压力值

如何在Flutter 中不从getX库中初始化GetxController中的变量

Firebase动态链接已弃用,不应在新项目中使用.Flutter 替代方案

如何在容器小部件中的图像旁边添加文本?

在背景图像上排列定位徽标

Firebase WHERE过滤器在日期字段中不起作用

导航回上一页会将我带回Ffltter应用程序中的登录页面

Flutter 构建 Web 分段故障 - 无法启动事件处理程序线程

Flutter - Riverpod 2.0 - 如何访问 onDispose 回调?

Flutter - Stripe:类型List 不是类型Map 的子类型? method_channel_stripe.dart 中的错误:263

Flutter 未处理的异常 - 对 null 值使用 Null 判断运算符

Flutter canvas 绘制不同 colored颜色 的原始点

Flutter - 如何将按钮对齐到行的右侧

Flutter HLS .m3u8 视频无法实时播放

我无法从 Cloud firestore 访问文档字段并在 statefulwidget 类中显示它

Flutter 如何使用 ClipPath 编辑容器的顶部?

如何在 Flutter 中创建 Facebook 创建帖子屏幕?

无法将参数类型Future Function(String?)分配给参数类型void Function(NotificationResponse)?

使用 onPressed 切换到另一个屏幕无法正常工作

为什么这个循环只发生一次?Flutter /dart