Home > Enterprise >  Alert dialogue not displaying even with show dialogue
Alert dialogue not displaying even with show dialogue

Time:03-17

I changed it to stateful and used return dialogue but still nothing.

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

class MyApp extends StatefulWidget {
  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  createAlertDialogue(BuildContext context) {
    TextEditingController customeController = TextEditingController();

    return showDialog(
        context: context,
        builder: (context) {
          return AlertDialog(
            title: Text("  Your NAme"),
            content: TextField(
              controller: customeController,
            ),
            actions: <Widget>[
              MaterialButton(
                elevation: 5.0,
                child: Text('submit'),
                onPressed: () {},
              )
            ],
          );
        });
  }

  Widget _buildForgotPasswordBtn(BuildContext ctx) {
    return Container(
      alignment: Alignment.centerRight,
      child: TextButton(
     
        onPressed: () {
          setState(() {
            createAlertDialogue(ctx);
          });
        },
        child: Text(
          'forgot password',
          style: kLabelStyle,
        ),
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        backgroundColor: Color.fromARGB(206, 5, 42, 146),
        body: SafeArea(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              _buildForgotPasswordBtn(context),

            ],
          ),
        ),
      ),
    );
  }
}

I used setState and even put ctx in createalertdialogue because it didn't work until I changed from context to this. I don't get any errors but I get nothing when I press the forgot password button on the emulator. The button is there and can be pressed with no errors but still nothing appears.

CodePudding user response:

i fixed it nevermind sorry the answer was changing the navigation method to Navigator.pushNamed

CodePudding user response:

I Just slightly edited your code

Wrap your runApp with MaterialApp

from

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

to

void main() {
  runApp(
    MaterialApp(
      home: MyApp(),
    ),
  );
}

your full code

import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      home: MyApp(),
    ),
  );
}

class MyApp extends StatefulWidget {
  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  createAlertDialogue(BuildContext context) {
    TextEditingController customeController = TextEditingController();

    return showDialog(
        context: context,
        builder: (context) {
          return AlertDialog(
            title: Text("  Your NAme"),
            content: TextField(
              controller: customeController,
            ),
            actions: <Widget>[
              MaterialButton(
                elevation: 5.0,
                child: Text('submit'),
                onPressed: () {},
              )
            ],
          );
        });
  }

  Widget _buildForgotPasswordBtn(BuildContext ctx) {
    return Container(
      alignment: Alignment.centerRight,
      child: TextButton(
        onPressed: () {
          setState(() {
            createAlertDialogue(ctx);
          });
        },
        child: Text(
          'forgot password',
        ),
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        backgroundColor: Color.fromARGB(206, 5, 42, 146),
        body: SafeArea(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              _buildForgotPasswordBtn(context),
            ],
          ),
        ),
      ),
    );
  }
}
  • Related