Dart 在颤振图标中,按钮在appBar中单击,但出现错误
我一直试图触发一个对话框时,图标按钮是点击在appBar,但错误来了 这个错误是持久性的 我认为showDialog()中传递的上下文有一些问题,我不确定 进口“包装:颤振/材料.省道”; 进口“包装:Flatter_colorpicker/Flatter_colorpicker.dart”Dart 在颤振图标中,按钮在appBar中单击,但出现错误,dart,dialog,flutter,alert,appbar,Dart,Dialog,Flutter,Alert,Appbar,我一直试图触发一个对话框时,图标按钮是点击在appBar,但错误来了 这个错误是持久性的 我认为showDialog()中传递的上下文有一些问题,我不确定 进口“包装:颤振/材料.省道”; 进口“包装:Flatter_colorpicker/Flatter_colorpicker.dart” void main() => runApp(new MyApp()); class MyApp extends StatefulWidget { ## Heading ## @override
void main() => runApp(new MyApp());
class MyApp extends StatefulWidget {
## Heading ##
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return _MyPortfolioState();
}
}
class _MyPortfolioState extends State<MyApp> {
MaterialColor primaryColor = Colors.blue;
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Portfolio',
theme: new ThemeData(
primarySwatch: primaryColor,
),
home: Scaffold(
appBar: AppBar(
title: Text("Dhruv Agarwal"),
textTheme: TextTheme(
display2: TextStyle(color: Color.fromARGB(1, 0, 0, 0))),
actions: <Widget>[
new IconButton(
icon: Icon(Icons.format_color_text),
tooltip: 'Change Color',
onPressed: () {
Color pickerColor = primaryColor;
changeColor(Color color) {
setState(() => primaryColor = color);
}
showDialog (
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('Pick a color!'),
content: SingleChildScrollView(
child: ColorPicker(
pickerColor: pickerColor,
onColorChanged: changeColor,
pickerAreaHeightPercent: 0.8,
),
),
actions: <Widget>[
FlatButton(
child: Text('Got it'),
onPressed: () {
setState(() => primaryColor = pickerColor);
Navigator.of(context).pop();
},
),
],
);
});
},
),
])));
}
}
//
//
void main()=>runApp(新的MyApp());
类MyApp扩展了StatefulWidget{
##标题##
@凌驾
状态createState(){
//TODO:实现createState
返回_MyPortfolioState();
}
}
类_MyPortfolioState扩展状态{
MaterialColor primaryColor=Colors.blue;
//此小部件是应用程序的根。
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“投资组合”,
主题:新主题数据(
primarySwatch:primaryColor,
),
家:脚手架(
appBar:appBar(
标题:文本(“Dhruv Agarwal”),
textTheme:textTheme(
display2:TextStyle(颜色:color.fromARGB(1,0,0)),
行动:[
新图标按钮(
图标:图标(图标。格式\颜色\文本),
工具提示:“更改颜色”,
已按下:(){
颜色选择器颜色=原色;
更改颜色(颜色){
设置状态(()=>primaryColor=color);
}
显示对话框(
上下文:上下文,
生成器:(BuildContext上下文){
返回警报对话框(
标题:常量文本('选择颜色!'),
内容:SingleChildScrollView(
孩子:色彩采集器(
pickerColor:pickerColor,
变色,
选择器高度百分比:0.8,
),
),
行动:[
扁平按钮(
child:Text('Got it'),
已按下:(){
设置状态(()=>primaryColor=pickerColor);
Navigator.of(context.pop();
},
),
],
);
});
},
),
])));
}
}
//
//
重新加载时引发异常,未找到MaterialLocalization
Launching lib/main.dart on Redmi Note 5 Pro in debug mode...
Initializing gradle...
Resolving dependencies...
Gradle task 'assembleDebug'...
Built build/app/outputs/apk/debug/app-debug.apk.
Installing build/app/outputs/apk/app.apk...
I/zygote64(16669): Do partial code cache collection, code=28KB, data=20KB
I/zygote64(16669): After code cache collection, code=28KB, data=20KB
I/zygote64(16669): Increasing code cache capacity to 128KB
Syncing files to device Redmi Note 5 Pro...
I/flutter (16669): ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
I/flutter (16669): The following assertion was thrown while handling a gesture:
I/flutter (16669): No MaterialLocalizations found.
I/flutter (16669): MyApp widgets require MaterialLocalizations to be provided by a Localizations widget ancestor.
I/flutter (16669): Localizations are used to generate many different messages, labels,and abbreviations which are used
I/flutter (16669): by the material library.
I/flutter (16669): To introduce a MaterialLocalizations, either use a MaterialApp at the root of your application to
I/flutter (16669): include them automatically, or add a Localization widget with a MaterialLocalizations delegate.
I/flutter (16669): The specific widget that could not find a MaterialLocalizations ancestor was:
I/flutter (16669): MyApp
I/flutter (16669): The ancestors of this widget were:
I/flutter (16669): [root]
I/flutter (16669):
I/flutter (16669): When the exception was thrown, this was the stack:
I/flutter (16669): #0 debugCheckHasMaterialLocalizations.<anonymous closure> (package:flutter/src/material/debug.dart:124:7)
I/flutter (16669): #1 debugCheckHasMaterialLocalizations (package:flutter/src/material/debug.dart:127:4)
I/flutter (16669): #2 showDialog (package:flutter/src/material/dialog.dart:606:10)
I/flutter (16669): #3 MyApp.build.<anonymous closure> (file:///home/punisher/AndroidStudioProjects/first_app/portfolio/lib/main.dart:32:19)
I/flutter (16669): #4 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:507:14)
I/flutter (16669): #5 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:562:30)
I/flutter (16669): #6 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
I/flutter (16669): #7 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:242:9)
I/flutter (16669): #8 TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:204:7)
I/flutter (16669): #9 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
I/flutter (16669): #10 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:147:20)
I/flutter (16669): #11 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:121:22)
I/flutter (16669): #12 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:101:7)
I/flutter (16669): #13 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:64:7)
I/flutter (16669): #14 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:48:7)
I/flutter (16669): #15 _invoke1 (dart:ui/hooks.dart:153:13)
I/flutter (16669): #16 _dispatchPointerDataPacket (dart:ui/hooks.dart:107:5)
I/flutter (16669):
I/flutter (16669): Handler: onTap
I/flutter (16669): Recognizer:
I/flutter (16669): TapGestureRecognizer#5070d(debugOwner: GestureDetector, state: ready, won arena, finalPosition:
I/flutter (16669): Offset(354.2, 64.0), sent tap down)
I/flutter (16669): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter (16669): Another exception was thrown: No MaterialLocalizations found.
在调试模式下在Redmi Note 5 Pro上启动lib/main.dart。。。
正在初始化gradle。。。
正在解析依赖项。。。
Gradle任务“assembleDebug”。。。
构建build/app/outputs/apk/debug/app-debug.apk。
正在安装build/app/outputs/apk/app.apk。。。
I/zygote64(16669):执行部分代码缓存收集,代码=28KB,数据=20KB
I/zygote64(16669):在代码缓存收集之后,代码=28KB,数据=20KB
I/zygote64(16669):将代码缓存容量增加到128KB
正在将文件同步到设备Redmi Note 5 Pro。。。
I/颤振(16669):══╡ 用手势捕捉异常╞═══════════════════════════════════════════════════════════════════
I/flatter(16669):在处理手势时抛出以下断言:
I/颤振(16669):未发现材料定位。
I/flatter(16669):MyApp小部件要求本地化小部件祖先提供MaterialLocalization。
I/颤振(16669):本地化用于生成许多不同的消息、标签和缩写
I/颤振(16669):由材料库提供。
I/flatter(16669):要引入MaterialLocalization,可以在应用程序的根目录下使用MaterialApp
I/flatter(16669):自动包含它们,或者添加带有MaterialLocalizations委托的本地化小部件。
I/flatter(16669):找不到MaterialLocalizations祖先的特定小部件是:
I/颤振(16669):MyApp
I/flatter(16669):这个小部件的祖先是:
I/颤振(16669):[根]
I/颤振(16669):
I/flatter(16669):当抛出异常时,这是堆栈:
I/颤振(16669):#0调试检查HasMaterialLocalization。(包:颤振/src/material/debug.dart:124:7)
I/flatter(16669):#1调试检查hasMaterialLocalization(包:flatter/src/material/debug.dart:127:4)
I/flatter(16669):#2 showDialog(包:flatter/src/material/dialog.dart:606:10)
I/颤振(16669):#3 MyApp.build。(file:///home/punisher/AndroidStudioProjects/first_app/portfolio/lib/main.dart:32:19)
I/颤振(16669):#4(InkResponseEstate.)(handleTap)(包装:颤振/src/材料/墨水)井。省道:507:14)
I/flatter(16669):#5#InkResponseState.build。(包装:颤振/src/材料/墨水井。省道:562:30)
I/flatter(16669):#6 GestureRecognizer.invokeCallback(包:flatter/src/signatures/recognizer.dart:102:24)
I/flatter(16669):#7 TapGestureRecognitor.#检查(包:flatter/src/signatures/tap.dart:242:9)
I/flatter(16669):#8 TapGestureRecognitor.Accept手势(包:flatter/src/signatures/tap.dart:204:7)
I/flatter(16669):#9 GestureArenaManager.sweep(包:flatter/src/signatures/arena.dart:156:27)
I/flatter(16669):#10#WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent(包:flatter/src/signatures/binding.dart:147:20)
I/flatter(16669):11_WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent(包:flatter/src/signatures/binding.dart:121:22)
I/flatter(16669):#12#WidgetsFlutterBinding&BindingBase&GestureBinding.#handlePointerEvent(包:flatter/src/signatures/binding.dart:101:7)
I/Flatter(16669):#13#WidgetsFlutterBinding&BindingBase&GestureBinding.#flushPointerEventQueue(包装:Flatter/src/gest
main() => runApp(
MaterialApp(
title: 'ColorPicker test',
home: MyApp(),
),
);