flutter - 双击 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),
},
),
),
);
}));
}
}
请任何帮助解决它,因为我的应用程序已停止解决此问题并且红屏错误仍然出现,我不知道错误在哪里
解决方案
我有同样的错误。就我而言,错误是 FlutterEasyLoading 库。
删除该库后,双击 TextFormField 开始正常工作。
我希望这对你有帮助。
推荐阅读
- r - 比较数据帧之间的字符串
- wordpress - 如何在 Yoast SEO 中删除主页标题?
- jquery - 在 jQuery multiSelect 中显示所选选项数量的值
- search - Solr PatternTokenizerFactory 不适用于短语
- javascript - NUXT:从各个完全呈现的页面增量填充客户端上的 VueX 存储
- javascript - 将 Webm 音频文件转换为 mp3 或 ogg
- c# - 流畅的nhibernate一对多映射没有参考方法
- php - Laravel 在根文件夹外显示图像
- c# - 在 ASP 中继器 C# 中显示/隐藏 div 标签
- reactjs - 如何将 props 及其方法动态传递给 React 中的组件?