[英]Flutter calling showTimePicker function results in error: The getter 'modalBarrierDismissLabel' was called on null
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text("Hello Flutter"),),
body: Column(children: [
GestureDetector(
onTap: () {
showTimePicker(
context: context,
initialTime: const TimeOfDay(hour: 7, minute: 0),
);
},
child: Text("22:30")
)
Trying to add timePicker to my Flutter application like this. 试图像这样向我的Flutter应用程序添加timePicker。 Tapping on the text results in error.
轻击文本会导致错误。
E/flutter (23737): [ERROR:flutter/shell/common/shell.cc(181)] Dart Error: Unhandled exception: E/flutter (23737): NoSuchMethodError: The getter 'modalBarrierDismissLabel' was called on null.
E / flutter(23737):[错误:flutter / shell / common / shell.cc(181)] Dart错误:未处理的异常:E / flutter(23737):NoSuchMethodError:吸气剂'modalBarrierDismissLabel'被调用为null。 E/flutter (23737): Receiver: null E/flutter (23737): Tried calling: modalBarrierDismissLabel E/flutter (23737): #0
E / flutter(23737):接收方:空E / flutter(23737):尝试调用:modalBarrierDismissLabel E / flutter(23737):#0
Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:48:5) E/flutter (23737): #1 showDialog (package:flutter/src/material/dialog.dart:615:53) E/flutter (23737):Object.noSuchMethod(dart:core / runtime / libobject_patch.dart:48:5)E / flutter(23737):#1 showDialog(包:flutter / src / material / dialog.dart:615:53)E / flutter(23737) ):
This is a problem because the context passed to the showTimePicker()
is above the MaterialApp
in the widget tree. 这是一个问题,因为传递到
showTimePicker()
的上下文在小部件树中的MaterialApp
上方。
To fix it you need another context and you can use a Builder
below MaterialApp
. 要修复它,您需要另一个上下文,并且可以在
MaterialApp
下面使用一个Builder
。
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("Hello Flutter"),
),
body: Builder(
builder: (context) => Column(
children: [
GestureDetector(
onTap: () {
showTimePicker(
context: context,
initialTime: const TimeOfDay(hour: 7, minute: 0),
);
},
child: Text("22:30"),
)
],
),
),
),
);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.