Как передавать значения с помощью Navigator и получать их?

#android #flutter #navigator

#Android #флаттер #навигатор

Вопрос:

Мне нужно знать, как передавать значения с экрана на другой экран с помощью навигаторов, потому что я искал и не понимал, как это работает, чтобы передавать и получать данные и значения, или каков наилучший способ передачи значений с экрана на другой экран.

Обновить

Посмотрите, я хочу перенести var videoPath значение на предыдущий экран после завершения функции _stopvideoRecording() Future.

Ответ №1:

Обратитесь к этому официальному документу Flutter

 Code to send data to new Screen 

 Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) => DetailScreen(todo: todos[index]),
      ),
    );
  

Вторая страница / Страница получения

  class TodosScreen extends StatelessWidget {
  final List<Todo> todos;

  //requiring the list of todos
  TodosScreen({Key key, @required this.todos}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Todos'),
      ),
      //passing in the ListView.builder
      body: ListView.builder(
        itemCount: todos.length,
        itemBuilder: (context, index) {
          return ListTile(
            title: Text(todos[index].title)
          );
        },
      ),
    );
  }
}
  

Комментарии:

1. Так это правильно? Navigator.pop( context, MaterialPageRoute( builder: (context) => New_Aya(), settings: RouteSettings( arguments: videoPath, ), ), );

2. Нет, обратитесь к официальному документу

3. сослался и сделал, как сказал, но не сработало, это дало мне null, есть ли лучший способ?

4. проблема в том, что я не хочу составлять список, это просто переменная.

5. Как вы поместили todo: метод внутри DetailPage() ?