首页 > 解决方案 > 双击 TextFormField

问题描述

我使用颤振 1.17.0,但是当我在 TextFormField 中双击以将文本粘贴到 TextFormField 时,一件事并不好我收到此错误

�[38;5;248m════════ 小部件库捕获的异常════════════════════════════════════ ═════�[39;49m �[38;5;244m 在构建 _OverlayEntryWidget-[LabeledGlobalKey<_OverlayEntryWidgetState>#8f5d7](脏,状态:_OverlayEntryWidgetState#f2029)时引发了以下断言:�[39;49m 无 MediaQuery 小部件成立。

�[38;5;244m_OverlayEntryWidget 小部件需要 MediaQuery 小部件祖先。”[39;49m �[38;5;244m 找不到 MediaQuery 祖先的特定小部件是:_OverlayEntryWidget-[LabeledGlobalKey<_OverlayEntryWidgetState>#8f5d7]。[39 ;49m �[38;5;244mdirty�[39;49m �[38;5;244mstate: _OverlayEntryWidgetState#f2029�[39;49m �[38;5;244m] 受影响小部件的所有权链为:“_OverlayEntryWidget-[LabeledGlobalKey <_OverlayEntryWidgetState>#8f5d7] ← _Theatre ← Overlay ← Directionality ← FlutterEasyLoading ← EasyLocalizationProvider ← ScopedModelDescendant ← _InheritedModel ← AnimatedBuilder ← ScopedModel ← ⋯"�[39;49m

“[38;5;248m 通常,MediaQuery 小部件由应用程序小部件树顶部的 MaterialApp 或 WidgetsApp 小部件引入。”[39;49m

�[38;5;244m相关的导致错误的小部件是”[39;49m“[38;5;248mFlutterEasyLoading”[39;49m“[38;5;244m当抛出异常时,这是堆栈”[39; 49m = [38;5;244m#0 debugCheckHasMediaQuery.. [39;49m = [38;5;244m#1 debugCheckHasMediaQuery. [39;49m = [38;5;244m#2 _MaterialTextSelectionControls.buildToolbar. [39;49m] [38;5;244m#3 TextSelectionOverlay._buildToolbar�[39;49m�[38;5;244m#4 _OverlayEntryWidgetState.build�[39;49m�[38;5;244m...�[39;49m�[ 38;5;248m════════════════════════════════════════════════════ ═══════════════════════════════════�[39;49m

我的 main.dart

void main() {
runApp(EasyLocalization(child: MyApp()));
}

class MyApp extends StatefulWidget {
@override
State createState() {
return _MyAppState();
}
}

class _MyAppState extends State {
final MainModel _model = MainModel();

@override
void initState() {
SystemChrome.setPreferredOrientations([

]);
_model.initAppDirectory();
super.initState();
}

changeStatusBar() async{
await FlutterStatusbarcolor.setStatusBarColor(MySetting.mainColor);
FlutterStatusbarcolor.setStatusBarWhiteForeground(true);
if(Theme.of(context).platform == TargetPlatform.android){
await FlutterStatusbarcolor.setNavigationBarColor(Colors.black38);
}
}

@override
Widget build(BuildContext context) {
changeStatusBar();
var data = EasyLocalizationProvider.of(context).data;

return ScopedModel<MainModel>(
    model: _model,
    child: ScopedModelDescendant<MainModel>(
      rebuildOnChange: false,
        builder: (BuildContext context, Widget child, MainModel model) {
      return EasyLocalizationProvider(
        data: data,
        child: FlutterEasyLoading(
          child: MaterialApp(
            builder: (BuildContext context, Widget child) {
              return MediaQuery(
              data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
              child: child,
              );
            },
            debugShowCheckedModeBanner: false,
            title: 'my app',              
            localizationsDelegates: [
              GlobalCupertinoLocalizations.delegate,
              DefaultCupertinoLocalizations.delegate,
              GlobalMaterialLocalizations.delegate,
              GlobalWidgetsLocalizations.delegate,
              EasylocaLizationDelegate(
                  locale: Locale('ar', 'DZ'), path: 'assets/languages'),
            ],
            supportedLocales: [Locale('ar', 'DZ'), Locale('en', 'US')],
            locale: data.locale,
            theme: ThemeData(
              primarySwatch: MySetting.mainColor,
            ),
            home: SplashScreen( _model),
            },
          ),
        ),
      );
    }));
}
}

请任何帮助解决它,因为我的应用程序已停止解决此问题并且红屏错误仍然出现,我不知道错误在哪里

标签: flutterdart

解决方案


我有同样的错误。就我而言,错误是 FlutterEasyLoading 库。

删除该库后,双击 TextFormField 开始正常工作。

我希望这对你有帮助。


推荐阅读