Проблема с флаттером. rflutter не работает - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь отобразить предупреждение. Я использую пакет 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):

  • Помогите мне решить эту проблему.
  • Я пробовал много других способов, но безуспешно.
  • Спасибо взаранее.

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Ваша проблема выглядит как не относящийся к контексту param.

Попробуйте это.

 RaisedButton(
    child : Text("Click Raised),
    onPressed : () => _showAlert(context),
 )

...
//Out of build method
_showAlert(context){
       Alert(
          context : context,
          title : 'Raised Click',
       ).show();
}
0 голосов
/ 15 октября 2019

Вам нужно разделить ваш домашний виджет, попробуйте Scaffold на другой StatelessWidget и позвоните ему из MaterialApp home

РЕДАКТИРОВАТЬ изменить свой MaterialApp дом, как это home: home()

это ваш новый Scaffold в другом 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(),
              )
            ],
          ),
        ),
      ),
    );
  }
}
...