Home > Net >  Navigating to screen on button click but it is navigating without the button press
Navigating to screen on button click but it is navigating without the button press

Time:11-11

import 'package:flutter/material.dart';
import './home.dart';
class Question extends StatelessWidget {
Question({super.key});
TextEditingController durationController = 
TextEditingController();
TextEditingController lengthController = TextEditingController();
@override
Widget build(BuildContext context) {
return Container(
  margin: const EdgeInsets.only(top: 80),
  child: Column(
    children: <Widget>[
      Container(
        margin: const EdgeInsets.only(top: 30, right: 180),
        child: const Text("enter the period duration",
            style: TextStyle(fontSize: 18)),
      ),
      Card(
          child: TextField(
        decoration: const InputDecoration(
          labelText: "period duration",
        ),
        controller: durationController,
        keyboardType: TextInputType.number,
      )),
      Container(
        margin: const EdgeInsets.only(top: 30, right: 180),
        child: const Text("enter the period length",
            style: TextStyle(fontSize: 18)),
      ),
      Card(
          child: TextField(
        decoration: const InputDecoration(
          labelText: "period length",
        ),
        controller: lengthController,
        keyboardType: TextInputType.number,
      )),
      OutlinedButton(
          onPressed: () {
            //ClearSession();
            Navigator.pop(context, true);
            Navigator.pushReplacement(context,
                MaterialPageRoute(builder: (context) => const Home()));
          },

          child: const Text("Submit")),
    ],
  ),
);

} } //my aim is on pressing the button , next screen have to appear and in next screen there should be 3 icon but instead of appearing new screen when hitting button , it is showing the icon page in Question widget

// next screen widget class is

import 'package:flutter/material.dart';
class Home extends StatefulWidget {
 const Home({super.key});
@override
State<Home> createState() => _HomeState();
 }

  class _HomeState extends State<Home> {
  @override
 Widget build(BuildContext context) {
return Container(
  child: Column(
    children: <Widget>[
      Row(
        children: <Widget>[
          Container(child: Icon(Icons.home)),
          Container(child: Icon(Icons.calendar_month)),
          Container(
            child: Text(" home button"),
          )
        ],
      )
    ],
  ),
);

} }

//my aim is on pressing the button , next screen have to appear and in next screen there should be 3 icon but instead of appearing new screen when hitting button , it is showing the icon page in Question widget

CodePudding user response:

There can potential problem if this is a first screen and you use the pop method then you will get an error because you have nothing to pop.

Try to check the first possibility of navigation poping like in the example below

OutlinedButton(
    onPressed: () {
        //ClearSession();
        if (Navigator.canPop(context)) {
            Navigator.pop(context, true);
         }
         Navigator.pushReplacement(context, 
             MaterialPageRoute(builder: (context) => const Home()));
     },
     child: const Text("Submit"),
 ),
  • Related