如何在顫振中返回小部件中的警報

編碼時間

我正在嘗試使用此包rflutter_alert創建自定義警報對話框但是當返回警報時它給了我這個錯誤

The argument type 'Future<bool?>' can't be assigned to the parameter type 'Widget?'.

更新:

在這裡我創建了一個自定義的對話小部件


class DialogueTwoButton extends StatelessWidget {
  DialogueTwoButton(
      {Key? key,
      context,
      required this.text1,
      required this.text2,
      required this.onpres1,
      required this.onpress2})
      : super(key: key);
  final String text1;
  final String text2;
  final Function onpres1;
  final Function onpress2;

  @override
  Widget build(BuildContext context) {
    return _onAlertButtonsPressed(context, text1, text2, onpres1, onpress2);
  }

  var alertStyle = AlertStyle(
    animationType: AnimationType.fromTop,
    isCloseButton: false,
    isOverlayTapDismiss: false,
    descStyle: GoogleFonts.montserrat(color: Colors.black, fontSize: 18),
    titleStyle: GoogleFonts.montserrat(
      color: Colors.red,
    ),
  );

  _onAlertButtonsPressed(context, desc, title, onPressYes, onPressNo) {
    return Alert(
      context: context,
      style: alertStyle,
      title: title,
      desc: desc,
      buttons: [
        DialogButton(
            child: Text(
              "Yes",
              style: GoogleFonts.montserrat(color: Colors.white, fontSize: 18),
            ),
            onPressed: onPressYes,
            color: HexColor("#5344ed")),
        DialogButton(
          child: Text(
            "No",
            style: GoogleFonts.montserrat(color: Colors.white, fontSize: 18),
          ),
          onPressed: onPressNo,
          color: HexColor("#5344ed"),
        )
      ],
    ).show(); // here need to change
  }

這是我正在創建按鈕的另一個文件


 updateProduct() {
    DialogueTwoButton(
      onpres1: () {},
      onpress2: () {},
      text1: 'df',
      text2: 'dsf',
    );


 bottomButton(context, () {
            updateProduct();
          }, "Update Product"),

updateProduct();在此mehtod調用自定義類的對話,但它沒有顯示,我想這樣做事情以這種方式。

請幫助如何做到這一點。

賈希杜爾伊斯蘭教

你錯過了一個右)括號).show()

_onAlertButtonsPressed(context,desc,title,onPressYes,onPressNo) {
   return Alert(
      context: context,
      style: alertStyle,
      title: title,
      desc: desc,
      buttons: [
        DialogButton(
            child: Text(
              "Yes",
              style: GoogleFonts.montserrat(color: Colors.white, fontSize: 18),
            ),
            onPressed: onPressYes,
            color: HexColor("#5344ed")),
        DialogButton(
            child: Text(
              "No",
              style: GoogleFonts.montserrat(color: Colors.white, fontSize: 18),
            ),
            onPressed: onPressNo,
            color: HexColor("#5344ed"),
            )
      ],
    ).show(); // here need to change
  }

完整的源代碼:

import 'package:flutter/material.dart';
import 'package:rflutter_alert/rflutter_alert.dart';

const Color darkBlue = Color.fromARGB(255, 18, 32, 47);

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(
        scaffoldBackgroundColor: darkBlue,
      ),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: MyHomePage(),
        ),
      ),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

TextEditingController _textEditingController = TextEditingController();
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("title"),
      ),
      body: Column(
        children: [
          InkWell(onTap: (){
            _onAlertButtonsPressed(context,"test","title",(){},(){});
          }, child: Text("test")),
         
        ],
      ),
    );
  }
}


 _onAlertButtonsPressed(context,String desc,String title,onPressYes,onPressNo) {
  return Alert(
    context: context,
    //style: alertStyle,
    title: title,
    desc: desc,
    buttons: [
      DialogButton(
          child: Text(
            "Yes",
            //style: GoogleFonts.montserrat(color: Colors.white, fontSize: 18),
          ),
          onPressed: onPressYes,
          //color: HexColor("#5344ed")
           ),
      DialogButton(
        child: Text(
          "No",
         // style: GoogleFonts.montserrat(color: Colors.white, fontSize: 18),
        ),
        onPressed: onPressNo,
       // color: HexColor("#5344ed"),
      )
    ],
  ).show(); // here need to change
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章