Reputation: 43
I am trying to display an alert. I am using rflutter package. But it is not working somehow, I am not getting it.
I am trying to display an alert. I am using rflutter package. But it is not working somehow, I am not getting it.
Here is my 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(),
)
],
),
),
),
),
);
}
}
and Here is pubspec.yaml dependencies
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
rflutter_alert: ^1.0.3
This is the error I am getting.
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):
Upvotes: 0
Views: 1453
Reputation: 316
Your issue looks like not reference context param.
Try this.
RaisedButton(
child : Text("Click Raised),
onPressed : () => _showAlert(context),
)
...
//Out of build method
_showAlert(context){
Alert(
context : context,
title : 'Raised Click',
).show();
}
Upvotes: 1
Reputation: 3015
You need split your home widget, try Scaffold
to another StatelessWidget
and call it from MaterialApp home
EDIT
change your MaterialApp
home like that home: home()
this is your new Scaffold
in another home() StatelessWidget
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(),
)
],
),
),
),
);
}
}
Upvotes: 1