Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 有没有办法使用pushNamed将多个索引参数传递到另一个屏幕?_Flutter_Dart - Fatal编程技术网

Flutter 有没有办法使用pushNamed将多个索引参数传递到另一个屏幕?

Flutter 有没有办法使用pushNamed将多个索引参数传递到另一个屏幕?,flutter,dart,Flutter,Dart,我正在尝试使用ListViewBuilder和卡片导航到新屏幕。我目前有我的命名路由集,因此它接受我解析的json模型的索引。所以问题是如何传递'name'字符串参数,以及'nextEpisodes'ListString和'prevescents'ListString。我想在下一个屏幕上访问所有这些变量 提前谢谢 您可以通过这种方式将整个列表项从列表的特定索引从一个屏幕发送到另一个屏幕 甲级以内 请检查它的示例,以便将数据从一个类传递到另一个类 向B类发送数据的类 上述程序的输出如下 您可以通过

我正在尝试使用ListViewBuilder和卡片导航到新屏幕。我目前有我的命名路由集,因此它接受我解析的json模型的索引。所以问题是如何传递'name'字符串参数,以及'nextEpisodes'ListString和'prevescents'ListString。我想在下一个屏幕上访问所有这些变量

提前谢谢


您可以通过这种方式将整个列表项从列表的特定索引从一个屏幕发送到另一个屏幕

甲级以内

请检查它的示例,以便将数据从一个类传递到另一个类

向B类发送数据的类

上述程序的输出如下


您可以通过这种方式将整个列表项从列表的特定索引从一个屏幕发送到另一个屏幕

甲级以内

请检查它的示例,以便将数据从一个类传递到另一个类

向B类发送数据的类

上述程序的输出如下


谢谢你回复我!在A班你的意思是写:```列表=新列表;````吗我的构造函数类的名称在哪里?我已经这样实现了它,但是我得到了一个错误:字符串不能分配给您的参数类型_BEAN@Stridermn我已经用演示实例更新了解决方案,请检查一次,如果有问题请告诉我谢谢你回复我!在A班你的意思是写:```列表=新列表;````吗我的构造函数类的名称在哪里?我已经这样实现了它,但是我得到了一个错误:字符串不能分配给您的参数类型_BEAN@Stridermn我已经用演示实例更新了解决方案,请检查一次,如果出现问题请通知我。我已经用演示实例更新了解决方案,请检查一次,如果有问题请通知我。我已经用演示实例更新了解决方案,如果有问题请检查一次并通知我
ListView.builder(
                  shrinkWrap: true,
                  itemCount: slist.length,
                  itemBuilder: (context, index) {
                    print(slist[index].prevEpisodes);
                    return Card(
                      child: ListTile(
                          onTap: () {
                            Navigator.of(context).pushNamed('/episodes', arguments: slist[index].name);
                          },
                          title: Text(slist[index].name),
                          //                        subtitle: Text(shows[index].showNextAirDate),
                          //                        leading: CircleAvatar(
                          //                          backgroundImage:
                          //                              AssetImage('assets/${shows[index].showPic}'),
                          //                        ),
                          trailing: Icon(Icons.keyboard_arrow_right,
                              color: Colors.black26, size: 30.0)),
                    );
                  }),
 List<YOUR_BEAN> list = new List<YOU_BEAN>();


    Navigator.push(
      context,
      MaterialPageRoute(
          builder: (context) => B(bean: list [index])), //// HERE B IS THE CLASS ON WHICH YOU NEED TO CARRY DATA FROM CLASS A
    );
class B extends StatefulWidget {
      YOUR_BEAN bean;

      B ({Key key, @required this.bean}) : super(key: key); ////YOU WILL GET THE DATA HERE FROM THE CONSTRUCTOR , AND USE IT INSIDE THE CLASS LIKE "widget.bean" 

      @override
      State<StatefulWidget> createState() {
        // TODO: implement createState
        return _B();
      }
    }
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';

import 'B.dart';
import 'Fields.dart';

    class A extends StatefulWidget {
      @override
      State<StatefulWidget> createState() {
        // TODO: implement createState
        return _A();
      }
    }

    class _A extends State<A> {

      Widget build(BuildContext context) {
        return MaterialApp(
            title: 'Screen A',
            debugShowCheckedModeBanner: false,
            theme: ThemeData(
              primaryColor: Colors.red,
              accentColor: Color(0xFFFEF9EB),
            ),
            home: Scaffold(
                appBar: new AppBar(),
                body: Container(
                  margin: EdgeInsets.all(20.0),
                  child: Column(
                    children: <Widget>[
                      Padding(
                        padding: EdgeInsets.all(10.0),
                        child: Text("Screen A"),
                      ),
                      Expanded(
                        child: ListView.builder(
                            itemCount: fields.length,
                            itemBuilder: (BuildContext ctxt, int index) {
                              return ListTile(
                                title: new Text("Rating #${fields[index].rating}"),
                                subtitle: new Text(fields[index].title),
                                onTap: (){

                                  Navigator.push(
                                    context,
                                    MaterialPageRoute(
                                        builder: (context) => B(bean: fields [index])), //// HERE B IS THE CLASS ON WHICH YOU NEED TO CARRY DATA FROM CLASS A
                                  );
                                },
                              );
                            }),
                      )
                    ],
                  ),
                )));
      }
    }

    List<Fields> fields = [
      new Fields(
        'One',
        1,
      ),
      new Fields(
        'Two',
        2,
      ),
      new Fields(
        'Three',
        3,
      ),
      new Fields(
        'Four',
        4,
      ),
      new Fields(
        'Five',
        5,
      ),
    ];
import 'package:flutter/material.dart';

import 'Fields.dart';


    class B extends StatefulWidget{

      Fields bean;

      B ({Key key, @required this.bean}) : super(key: key); ////YOU WILL GET THE DATA HERE FROM THE CONSTRUCTOR , AND USE IT INSIDE THE CLASS LIKE "widget.bean"

      @override
      State<StatefulWidget> createState() {
        // TODO: implement createState
         return _B ();

      }

    }

    class _B extends State<B> {
      @override
      Widget build(BuildContext context) {
        // TODO: implement build
        return MaterialApp(
            title: 'Screen A',
            debugShowCheckedModeBanner: false,
            theme: ThemeData(
              primaryColor: Colors.red,
              accentColor: Color(0xFFFEF9EB),
            ),
            home: Scaffold(
                appBar: new AppBar(),
                body: Container(
                  margin: EdgeInsets.all(20.0),
                  child: Column(
                    children: <Widget>[
                      Padding(
                        padding: EdgeInsets.all(10.0),
                        child: Center(
                          child: Text("Screen B" ,style: TextStyle(fontSize: 20.0),),
                        )
                      ),
                       Text("Rating=>>>  ${widget.bean.rating}  and Title ${widget.bean.title} ")
                    ],
                  ),
                )));
      }
    }
class Fields {
  final String title;
  final int rating;

  Fields(this.title, this.rating);
}