警报对话框没有出现颤动

时间:2021-02-25 12:21:35

标签: flutter

我正在尝试构建从用户那里获取值并提醒他是否血压高、低或正常的函数,所以,我这样做了

void preesureRanges(double sysValue, double diaValue) {
    String text = "";

    if (sysValue >= 120 &&
        sysValue <= 130 &&
        diaValue >= 80 &&
        diaValue <= 90) {
      text = ("معدل ضغط الدم في الجسم طبيعي");
    } else if (sysValue < 120 && diaValue < 80) {
      text =
          ("معدل ضغط الدم منخفض \nالرجاء تناول طعام مالح وشرب كمية كافية من الماء ");
    } else if (sysValue > 130 && diaValue > 90) {
      text = ("معدل ضغط الدم مرتفع  ");
    }
    showDialog<void>(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          content: Text(
            text,
          ),
          actions: <Widget>[
            Buttons(
                height: 35,
                width: 100,
                text: 'اغلاق',
                onPressed: () => Navigator.pop(context)),
          ],
        );
      },
    );
  }

但未显示警报对话框我尝试调用该方法并且该方法正常工作 之后,我尝试进行更改,并将警报的调用放入 if 中

void preesureRanges(double sysValue, double diaValue) {
    String text = "";

    if (sysValue >= 120 &&
        sysValue <= 130 &&
        diaValue >= 80 &&
        diaValue <= 90) {
      showDialog<void>(
        context: context,
        builder: (BuildContext context) {
          return AlertDialog(
            content: Text(
              "معدل ضغط الدم في الجسم طبيعي",
            ),
            actions: <Widget>[
              Buttons(
                  height: 35,
                  width: 100,
                  text: 'اغلاق',
                  onPressed: () => Navigator.pop(context)),
            ],
          );
        },
      );
      text = ("معدل ضغط الدم في الجسم طبيعي");
    } else if (sysValue < 120 && diaValue < 80) {
      text =
          ("معدل ضغط الدم منخفض \nالرجاء تناول طعام مالح وشرب كمية كافية من الماء ");
    } else if (sysValue > 130 && diaValue > 90) {
      text = ("معدل ضغط الدم مرتفع \nالرجاء مدري والله ايش المفروض تسوي ");
    }
    showDialog<void>(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          content: Text(
            text,
          ),
          actions: <Widget>[
            Buttons(
                height: 35,
                width: 100,
                text: 'اغلاق',
                onPressed: () => Navigator.pop(context)),
          ],
        );
      },
    );
  }

但这里只有第一种情况显示警报,我也尝试过但在每种情况下都调用警报但没有显示任何内容

 onPreesed: () {
          preesureRanges(upPressure, downPressure, context);    
          Navigator.of(context).pop();
        },

这里是调用方法,这个 onPressed 用于 RaisedButton,我把它放在 Bottom Sheet 里面,这是我传递给我的函数的值

double upPressure;
String upPree;
double downPressure;
String downPree;

这些 onChanged 函数属于我在底部工作表中的 textFormFiled

 onChanged: (newPrusser) {
              upPree = newPrusser;
              upPressure = double.parse(upPree);
            },
onChanged: (newPrusser) {
          downPree = newPrusser;
          downPressure = double.parse(downPree);
        },

1 个答案:

答案 0 :(得分:2)

在这里发现错误:

onPreesed: () {
          preesureRanges(upPressure, downPressure, context);    
          Navigator.of(context).pop();
        },

您已将 Navigator.of(context).pop() 叫到这里。评论它,你会看到它有效。