颤振警报问题。颤动不工作
Flutter Alert problem. rflutter is not working
我正在尝试显示警报。我正在使用 rflutter 包。但是不知何故它不起作用,我不明白。
我正在尝试显示警报。我正在使用 rflutter 包。但是不知何故它不起作用,我不明白。
这是我的main.dart
import 'package:flutter/material.dart';
import 'package:rflutter_alert/rflutter_alert.dart';
void main() => runApp(DialogueBoxes());
class DialogueBoxes extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
color: Colors.green,
home: Scaffold(
body: Center(
child: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
FlatButton(
child: Text("Click Flat"),
onPressed: () {
return Alert(
context: context,
title: 'Flat Cilcked',
).show();
},
),
RaisedButton(
child: Text("Click Raised"),
onPressed: () => Alert(
context: context,
title: 'Raised Click',
).show(),
)
],
),
),
),
),
);
}
}
这里是 pubspec.yaml 依赖项
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
rflutter_alert: ^1.0.3
这是我遇到的错误。
E/flutter (27156): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: NoSuchMethodError: The getter 'modalBarrierDismissLabel' was called on null.
E/flutter (27156): Receiver: null
E/flutter (27156): Tried calling: modalBarrierDismissLabel
E/flutter (27156): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
E/flutter (27156): #1 Alert.show (package:rflutter_alert/src/alert.dart:54:55)
E/flutter (27156): <asynchronous suspension>
E/flutter (27156): #2 DialogueBoxes.build.<anonymous closure> (package:quizzed/main.dart:32:21)
E/flutter (27156): #3 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:654:14)
E/flutter (27156): #4 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:729:32)
E/flutter (27156): #5 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
E/flutter (27156): #6 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:365:11)
E/flutter (27156): #7 TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:275:7)
E/flutter (27156): #8 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:455:9)
E/flutter (27156): #9 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:75:13)
E/flutter (27156): #10 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:102:11)
E/flutter (27156): #11 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:218:19)
E/flutter (27156): #12 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
E/flutter (27156): #13 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
E/flutter (27156): #14 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
E/flutter (27156): #15 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
E/flutter (27156): #16 _rootRunUnary (dart:async/zone.dart:1136:13)
E/flutter (27156): #17 _CustomZone.runUnary (dart:async/zone.dart:1029:19)
E/flutter (27156): #18 _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
E/flutter (27156): #19 _invoke1 (dart:ui/hooks.dart:263:10)
E/flutter (27156): #20 _dispatchPointerDataPacket (dart:ui/hooks.dart:172:5)
E/flutter (27156):
- 帮我解决这个问题。
- 我尝试了很多其他方法但没有成功。
- 提前致谢。
您需要拆分您的主页小部件,尝试 Scaffold
到另一个 StatelessWidget
并从 MaterialApp home
调用它
编辑
像这样改变你的 MaterialApp
家 home: home()
这是你在另一个 home() StatelessWidget
中的新 Scaffold
class home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
FlatButton(
child: Text("Click Flat"),
onPressed: () {
return Alert(
context: context,
title: 'Flat Cilcked',
).show();
},
),
RaisedButton(
child: Text("Click Raised"),
onPressed: () => Alert(
context: context,
title: 'Raised Click',
).show(),
)
],
),
),
),
);
}
}
您的问题似乎没有引用上下文参数。
试试这个。
RaisedButton(
child : Text("Click Raised),
onPressed : () => _showAlert(context),
)
...
//Out of build method
_showAlert(context){
Alert(
context : context,
title : 'Raised Click',
).show();
}
我正在尝试显示警报。我正在使用 rflutter 包。但是不知何故它不起作用,我不明白。
我正在尝试显示警报。我正在使用 rflutter 包。但是不知何故它不起作用,我不明白。
这是我的main.dart
import 'package:flutter/material.dart';
import 'package:rflutter_alert/rflutter_alert.dart';
void main() => runApp(DialogueBoxes());
class DialogueBoxes extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
color: Colors.green,
home: Scaffold(
body: Center(
child: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
FlatButton(
child: Text("Click Flat"),
onPressed: () {
return Alert(
context: context,
title: 'Flat Cilcked',
).show();
},
),
RaisedButton(
child: Text("Click Raised"),
onPressed: () => Alert(
context: context,
title: 'Raised Click',
).show(),
)
],
),
),
),
),
);
}
}
这里是 pubspec.yaml 依赖项
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
rflutter_alert: ^1.0.3
这是我遇到的错误。
E/flutter (27156): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: NoSuchMethodError: The getter 'modalBarrierDismissLabel' was called on null.
E/flutter (27156): Receiver: null
E/flutter (27156): Tried calling: modalBarrierDismissLabel
E/flutter (27156): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
E/flutter (27156): #1 Alert.show (package:rflutter_alert/src/alert.dart:54:55)
E/flutter (27156): <asynchronous suspension>
E/flutter (27156): #2 DialogueBoxes.build.<anonymous closure> (package:quizzed/main.dart:32:21)
E/flutter (27156): #3 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:654:14)
E/flutter (27156): #4 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:729:32)
E/flutter (27156): #5 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
E/flutter (27156): #6 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:365:11)
E/flutter (27156): #7 TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:275:7)
E/flutter (27156): #8 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:455:9)
E/flutter (27156): #9 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:75:13)
E/flutter (27156): #10 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:102:11)
E/flutter (27156): #11 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:218:19)
E/flutter (27156): #12 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
E/flutter (27156): #13 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
E/flutter (27156): #14 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
E/flutter (27156): #15 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
E/flutter (27156): #16 _rootRunUnary (dart:async/zone.dart:1136:13)
E/flutter (27156): #17 _CustomZone.runUnary (dart:async/zone.dart:1029:19)
E/flutter (27156): #18 _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
E/flutter (27156): #19 _invoke1 (dart:ui/hooks.dart:263:10)
E/flutter (27156): #20 _dispatchPointerDataPacket (dart:ui/hooks.dart:172:5)
E/flutter (27156):
- 帮我解决这个问题。
- 我尝试了很多其他方法但没有成功。
- 提前致谢。
您需要拆分您的主页小部件,尝试 Scaffold
到另一个 StatelessWidget
并从 MaterialApp home
编辑
像这样改变你的 MaterialApp
家 home: home()
这是你在另一个 home() StatelessWidget
Scaffold
class home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
FlatButton(
child: Text("Click Flat"),
onPressed: () {
return Alert(
context: context,
title: 'Flat Cilcked',
).show();
},
),
RaisedButton(
child: Text("Click Raised"),
onPressed: () => Alert(
context: context,
title: 'Raised Click',
).show(),
)
],
),
),
),
);
}
}
您的问题似乎没有引用上下文参数。
试试这个。
RaisedButton(
child : Text("Click Raised),
onPressed : () => _showAlert(context),
)
...
//Out of build method
_showAlert(context){
Alert(
context : context,
title : 'Raised Click',
).show();
}