Flutter 颤振:当使用ProgressDialog双击或长按Cupertino文本字段时,应用程序崩溃

Flutter 颤振:当使用ProgressDialog双击或长按Cupertino文本字段时,应用程序崩溃,flutter,Flutter,当应用程序正在执行一些重要的IO操作时,我用它来显示进度UI。但我注意到,当我们双击或长按任何文本输入字段时,应用程序崩溃/在调试时显示红色屏幕 以下是相关日志: ======== Exception caught by widgets library ======================================================= The following ArgumentError was thrown building _OverlayEntryWidget

当应用程序正在执行一些重要的IO操作时,我用它来显示进度UI。但我注意到,当我们双击或长按任何文本输入字段时,应用程序崩溃/在调试时显示红色屏幕

以下是相关日志:

======== Exception caught by widgets library =======================================================
The following ArgumentError was thrown building _OverlayEntryWidget-[LabeledGlobalKey<_OverlayEntryWidgetState>#235b1](dirty, dependencies: [MediaQuery], state: _OverlayEntryWidgetState#faabb):
Invalid argument(s): 26.0

The relevant error-causing widget was: 
  ProgressDialog file:///Users/bipinvaylu/Documents/Work/Workspaces/xyzapp/lib/main.dart:89:24
When the exception was thrown, this was the stack: 
#0      double.clamp (dart:core-patch/double.dart:183:7)
#1      _CupertinoTextSelectionControls.buildToolbar (package:flutter/src/cupertino/text_selection.dart:478:72)
#2      TextSelectionOverlay._buildToolbar (package:flutter/src/widgets/text_selection.dart:578:34)
#3      _OverlayEntryWidgetState.build (package:flutter/src/widgets/overlay.dart:179:34)
#4      StatefulElement.build (package:flutter/src/widgets/framework.dart:4744:28)
...

====================================================================================================
main.dart - MyApp:

class MyApp extends StatelessWidget {
  MyApp();

  @override
  Widget build(BuildContext context) {
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
    ]);

    return Localizations(
      locale: const Locale('en', 'US'),
      delegates: <LocalizationsDelegate<dynamic>>[
        DefaultWidgetsLocalizations.delegate,
        DefaultMaterialLocalizations.delegate,
      ],
      child: MediaQuery(
        data: const MediaQueryData(),
        child: ThemeBuilder(
          defaultThemeMode: ThemeMode.system,
          darkTheme: darkTheme,
          lightTheme: lightTheme,
          statusBarColorBuilder: (theme) => HomePage.tabBackgroundColor,
          themes: getThemes(),
          builder: (context, regularTheme, darkTheme, themeMode) {
            return LayoutBuilder(
                //return LayoutBuilder
                builder: (context, constraints) {
              return OrientationBuilder(
                  //return OrientationBuilder
                  builder: (context, orientation) {
                //initialize SizerUtil()
                SizerUtil().init(constraints, orientation);

                return ProgressDialog(
                  orientation: ProgressOrientation.vertical,
                  loadingText: "Please wait...",
                  backgroundColor: Theme.of(context).backgroundColor,
                  child: MaterialApp(
                    title: "Xyz app",
                    theme: regularTheme,
                    darkTheme: darkTheme,
                    themeMode: themeMode,
                    home: SplashScreen(),
                  ),
                );
              });
            });
          },
        ),
      ),
    );
  }
}
Text input field setup in other screen as follow:

                    Expanded(
                      child: CupertinoTextField(
                        controller: _userNameTextController,
                        keyboardType: TextInputType.name,
                        placeholder: "Friend username",
                        style: Theme.of(context).textTheme.bodyText1,
                        cursorColor: Theme.of(context).primaryColor,
                        prefix: Padding(
                          padding:
                              const EdgeInsets.fromLTRB(9.0, 6.0, 9.0, 6.0),
                          child: Icon(
                            Icons.search,
                            color: Theme.of(context).primaryColor,
                          ),
                        ),
                        decoration: BoxDecoration(
                          borderRadius: BorderRadius.circular(8.0),
                          color: Theme.of(context).accentColor.withAlpha(70),
                        ),
                      ),
                    ),
=======小部件库捕获的异常=======================================================
在生成_OverlayEntryWidget-[LabeledGlobalKey#235b1](脏,依赖项:[MediaQuery],状态:_OverlayEntryWidgetState#faabb)时引发了以下ArgumentError:
无效参数:26.0
导致错误的相关小部件是:
进展对话file:///Users/bipinvaylu/Documents/Work/Workspaces/xyzapp/lib/main.dart:89:24
引发异常时,这是堆栈:
#0双夹钳(省道:芯片/双。省道:183:7)
#1 _CupertinoTextSelectionControls.buildToolbar(包:flatter/src/cupertino/text_selection.dart:478:72)
#2 text选择overlay.\u buildToolbar(包:flatter/src/widgets/text\u selection.dart:578:34)
#3\u OverlayEntryWidgetState.build(包:flatter/src/widgets/overlay.dart:179:34)
#4 StatefulElement.build(包:flatter/src/widgets/framework.dart:4744:28)
...
====================================================================================================
main.dart-MyApp:
类MyApp扩展了无状态小部件{
MyApp();
@凌驾
小部件构建(构建上下文){
SystemChrome.setPreferredOrientations([
DeviceOrientation.Up,
]);
返回本地化(
语言环境:常量语言环境('en','US'),
代表们:[
DefaultWidgetsLocalizations.delegate,
DefaultMaterialLocalizations.delegate,
],
子项:MediaQuery(
数据:const MediaQueryData(),
孩子:ThemeBuilder(
defaultThemeMode:ThemeMode.system,
暗色:暗色,
lightTheme:lightTheme,
statusBarColorBuilder:(主题)=>HomePage.tabBackgroundColor,
主题:getThemes(),
构建器:(上下文、常规主题、暗主题、主题模型){
返回布局生成器(
//返回布局生成器
生成器:(上下文、约束){
返回方向生成器(
//返回方向生成器
生成器:(上下文、方向){
//初始化SizerUtil()
SizerUtil().init(约束、方向);
返回进度对话框(
方向:ProgressOrientation.vertical,
加载文本:“请稍候…”,
背景色:主题。背景色,
孩子:MaterialApp(
标题:“Xyz应用程序”,
主题:常规主题,
暗色:暗色,
主题模式:主题模式,
主页:SplashScreen(),
),
);
});
});
},
),
),
);
}
}
其他屏幕中的文本输入字段设置如下:
扩大(
孩子:CupertinoTextField(
控制器:_userNameTextController,
键盘类型:TextInputType.name,
占位符:“朋友用户名”,
样式:Theme.of(context).textTheme.bodyText1,
cursorColor:Theme.of(context).primaryColor,
前缀:填充(
衬垫:
LTRB的常数边集(9.0,6.0,9.0,6.0),
子:图标(
Icons.search,
颜色:主题。背景。原色,
),
),
装饰:盒子装饰(
边界半径:边界半径。圆形(8.0),
颜色:主题.of(上下文).accentColor.withAlpha(70),
),
),
),
到目前为止,我还没有找到合适的解决办法。请帮我解决这个问题。否则,我可能需要尝试切换到其他库,并做一些额外的工作。谢谢。

退货资料App(
 return MaterialApp(
  localizationsDelegates: [GlobalMaterialLocalizations.delegate, GlobalMaterialLocalizations.delegate, localizationDelegate],
  supportedLocales: localizationDelegate.supportedLocales,
  locale: localizationDelegate.currentLocale,
  debugShowCheckedModeBanner: false,
  title: Strings.app_title,
  theme: ThemeData(
      pageTransitionsTheme: PageTransitionsTheme(builders: {
        TargetPlatform.android: CupertinoPageTransitionsBuilder(),
      }),
      primaryColor: themeColor.getColor(),
      textTheme: TextTheme(
          bodyText2: TextStyle(
            color: Colors.blue,
          ),
          bodyText1: TextStyle(
            color: LightColor.theme_purple,
          ))),
  localeResolutionCallback: (locale, supportedLocales) {
    for (var supportedLocaleLanguage in supportedLocales) {
      if (supportedLocaleLanguage.languageCode == locale.languageCode && supportedLocaleLanguage.countryCode == locale.countryCode) {
        return supportedLocaleLanguage;
      }
    }
    return supportedLocales.first;
  },
  builder: (context, child) {
    return FlutterEasyLoading(
        child: GestureDetector(
      onTap: () {
        FocusScopeNode currentFocus = FocusScope.of(context);
        if (!currentFocus.hasPrimaryFocus) {
          currentFocus.unfocus();
        }
      },
      child: child,
    ));
  },
  home: <Your Widget>
);
localizationsDelegates:[GlobalMaterialAllocalizations.delegate,GlobalMaterialAllocalizations.delegate,localizationDelegate], supportedLocales:localizationDelegate.supportedLocales, locale:localizationDelegate.currentLocale, debugShowCheckedModeBanner:false, 标题:Strings.app_title, 主题:主题数据( pageTransitionsTheme:pageTransitionsTheme(生成器:{ TargetPlatform.android:CupertinoPageTransitionsBuilder(), }), primaryColor:themeColor.getColor(), textTheme:textTheme( bodyText2:TextStyle( 颜色:颜色,蓝色, ), bodyText1:TextStyle( 颜色:LightColor.theme_紫色, ))), localeResolutionCallback:(locale,supportedLocales){ for(在supportedLocales中使用var supportedLocaleLanguage){ if(supportedLocaleLanguage.languageCode==locale.languageCode&&supportedLocaleLanguage.countryCode==locale.countryCode){ 返回支持的本地语言; } } 返回supportedLocales.first; }, 生成器:(上下文,子对象){ 回程颤振加载( 儿童:手势检测器( onTap:(){ FocusScopeNode currentFocus=FocusScope.of(上下文); 如果(!currentFocus.hasPrimaryFocus){ currentFocus.unfocus(); } }, 孩子:孩子, )); }, 主页: );
最终主题颜色=Provider.of(上下文); var localizationDelegate=LocalizedApp.of(context).delegate

使用MaterialApp()掩盖你的应用程序。 使用库颤振轻松加载:^2.2.2( 本地化报告:[全球材料Allocaliz