Как мне перейти от одного действия к другому в flutter

#android #flutter #dart

#Android #flutter #dart

Вопрос:

Привет, я довольно новичок в flutter и разработке программного обеспечения в целом. Кажется, я не могу понять, как мне перейти от одного действия к другому. Чего я действительно хочу, так это когда я нажимаю кнопку входа, она должна перенаправить меня к новому действию

 void main() {
  runApp(MaterialApp(
    title: 'button navigation',
    home: HomeActivity(),
  ));
}

class HomeActivity extends StatelessWidget{
  gotoSecondActivity(BuildContext context){

    Navigator.push(
      context,
      MaterialPageRoute(builder: (context) => SecondActivity()),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Home Screen'),
      ),

      body: Center(
        child: RaisedButton(
          child: Text('Go To Second Screen'),
          color: Colors.red,
          textColor: Colors.white,
          onPressed: () {
            gotoSecondActivity(context);
          },
        ),
      ),
    );
  }
}
class SecondActivity extends StatelessWidget {

  goBack(BuildContext context){

    Navigator.pop(context);

  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Second Screen"),
      ),

      body: Center(
        child: RaisedButton(
          onPressed: () {
            goBack(context);
          },
          color: Colors.green,
          textColor: Colors.white,
          child: Text('Go Back To Previous Screen'),
        ),
      ),
    );
  }
}
 

Вот код для второго действия, к которому я хочу перейти:

 class SecondActivity extends StatelessWidget {

  goBack(BuildContext context){

    Navigator.pop(context);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Second Screen"),
      ),

      body: Center(
        child: RaisedButton(
          onPressed: () {
            goBack(context);
          },
          color: Colors.green,
          textColor: Colors.white,
          child: Text('Go Back To Previous Screen'),
        ),
      ),
    );
  }
}
 

Как функция onclick работает на flutter и как мне реализовать это на моей кнопке

Ответ №1:

Чтобы вы поняли концепцию навигации, представьте стопку сложенных бумаг.

Каждый раз, когда вы используете:

Navigator.of(context).push(MaterialPageRoute(builder: (context) => AnotherPage(),));

вы «кладете» бумагу в эту стопку.

push используется для «помещения» новой бумаги в эту стопку.

pop используется для «извлечения» статьи из этой стопки, другими словами, вы вернетесь к предыдущей статье (странице)

Пример: Navigator.pop(context);

И есть другие типы навигации, я предлагаю вам ознакомиться с документацией после, как сказал @dm_tr выше.

Ответ №2:

Для перехода с одного экрана на другой вы должны использовать Navigator . Вот пример для перехода на другую страницу, имя класса которой AnotherPage , как вы можете видеть.

 Navigator.of(context).push(MaterialPageRoute(builder: (context) => AnotherPage(),));
 

Но, хотя это может ответить на ваш вопрос, сначала изучите основы flutter, прежде чем пытаться создать приложение. Вот пример хорошего объяснения навигации

Ответ №3:

Вы должны использовать navigator.

Создайте класс и поместите его внутрь:

 Future push(BuildContext context, Widget page, {bool replace = false}) {

  if(replace) {
    return Navigator.pushReplacement(context, MaterialPageRoute(builder: (BuildContext context) {
      return page;
    }));
  }

  return Navigator.push(context, MaterialPageRoute(builder: (BuildContext context) {
    return page;
  }));
}

bool pop<T extends Object>(BuildContext context, [ T result ]) {
  if(Navigator.canPop(context)) {
    Navigator.pop(context);
    return true;
  }
  return false;
}
 

После этого вы можете перемещаться между страницами с помощью этого:

 push(context, yourActivity());
pop(context);