簡體   English   中英

如何在 flutter 中從一項活動導航到另一項活動

[英]How do I navigate from one activity to another in flutter

嗨,我對 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 function 如何在 flutter 上工作以及如何在我的按鈕上實現此功能

為了讓你理解導航的概念,想想堆疊的一摞文件。

每次使用時:

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

你正在把一張紙“放在”那堆紙上。

push用於將新紙“放入”那堆紙。

pop用於從那堆紙中“拉”出一張紙,換句話說,您將 go 回到上一張紙(頁面)

例如: Navigator.pop(context);

還有其他類型的導航,我建議你看后面的文檔,就像上面@dm_tr所說的那樣。

要從一個屏幕導航到另一個屏幕,您必須使用Navigator 這是一個在 class 名稱為AnotherPage的頁面上導航的示例,如您所見。

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

但是,雖然這可能會回答您的問題,但在嘗試制作應用程序之前,請考慮先學習 flutter 基礎知識。 是一個很好地解釋導航的例子

您必須使用導航器。

創建一個 class 並將其放入:

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM