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