[英]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.