从Listview.builder获取值,然后在另一个statefeul小部件上提交该值?颤振

从Listview.builder获取值,然后在另一个statefeul小部件上提交该值?颤振,listview,flutter,Listview,Flutter,您好,我想问一个问题,如何编写一个函数,从listview.builder获取一个值,然后将其转发到第二个屏幕 范例 从下图来看, 选择项目2,然后应该有一个按钮的底部,它说提交,在下一个屏幕上,应该说,项目在屏幕中部? 而且应该是一个项目,而不是多个选择 请帮帮我,我一直在挠头,我了解下拉代码如何使用setstate和所有,但我无法理解它如何在listview.builder上工作 您需要在下一个视图中预期值: class SecondView extends StatefulWidget {

您好,我想问一个问题,如何编写一个函数,从listview.builder获取一个值,然后将其转发到第二个屏幕

范例

从下图来看, 选择项目2,然后应该有一个按钮的底部,它说提交,在下一个屏幕上,应该说,项目在屏幕中部? 而且应该是一个项目,而不是多个选择

请帮帮我,我一直在挠头,我了解下拉代码如何使用setstate和所有,但我无法理解它如何在listview.builder上工作


您需要在下一个视图中预期值:

class SecondView extends StatefulWidget {
  final String value;

  SecondView({this.value});

  @override
  _SecondViewState createState() => _SecondViewState();
}

class _SecondViewState extends State<SecondView> {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: Text(widget.value),
    );
  }
}

您需要在下一个视图中预期值:

class SecondView extends StatefulWidget {
  final String value;

  SecondView({this.value});

  @override
  _SecondViewState createState() => _SecondViewState();
}

class _SecondViewState extends State<SecondView> {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: Text(widget.value),
    );
  }
}
类MyWidget扩展了StatefulWidget{
@凌驾
_MyWidgetState createState()=>\u MyWidgetState();
}
类_MyWidgetState扩展状态{
@凌驾
小部件构建(构建上下文){
返回容器(
颜色:颜色,白色,
子项:ListView.builder(
收缩膜:对,
物品计数:15,
项目生成器:(con,ind){
返回列表块(
标题:
文本('Item$ind',样式:TextStyle(颜色:Colors.black)),
onTap:(){
导航器。推(
骗局
材料路线(
生成器:(cc)=>OtherScreen(值:'Item$ind'));
});
}));
}
}
类OtherScreen扩展StatefulWidget{
//添加自定义数据
最终字符串值;
OtherScreen({Key k,@required this.value}):超级(Key:k);
@凌驾
_OtherState createState()=>\u OtherState(值);
}
类_OtherState扩展了状态{
_其他状态(此数据);
字符串数据;
@凌驾
小部件构建(构建上下文){
返回容器(
对齐:对齐.center,
颜色:颜色,白色,
子项:文本(数据,样式:TextStyle(颜色:Colors.black));
}
}
类MyWidget扩展StatefulWidget{
@凌驾
_MyWidgetState createState()=>\u MyWidgetState();
}
类_MyWidgetState扩展状态{
@凌驾
小部件构建(构建上下文){
返回容器(
颜色:颜色,白色,
子项:ListView.builder(
收缩膜:对,
物品计数:15,
项目生成器:(con,ind){
返回列表块(
标题:
文本('Item$ind',样式:TextStyle(颜色:Colors.black)),
onTap:(){
导航器。推(
骗局
材料路线(
生成器:(cc)=>OtherScreen(值:'Item$ind'));
});
}));
}
}
类OtherScreen扩展StatefulWidget{
//添加自定义数据
最终字符串值;
OtherScreen({Key k,@required this.value}):超级(Key:k);
@凌驾
_OtherState createState()=>\u OtherState(值);
}
类_OtherState扩展了状态{
_其他状态(此数据);
字符串数据;
@凌驾
小部件构建(构建上下文){
返回容器(
对齐:对齐.center,
颜色:颜色,白色,
子项:文本(数据,样式:TextStyle(颜色:Colors.black));
}
}


我的答案对您的问题有帮助吗?您的选择是单个还是多个?只添加了一个选择@NaveenAvidiAnswer!根据您的要求修改它!我的回答对你的问题有帮助吗?你的选择是单个还是多个?只添加了一个选择@NaveenAvidiAnswer!根据您的要求修改它!等等,那么下一个视图是第二页?移动到下一个视图是第一个视图吗?或者我错了,哈哈哈,你能像第一个视图和第二个视图那样做吗:)要进一步了解下一个视图是第二个视图,它需要上一个视图中的代码,从上一个视图中输入值,然后在上一个视图中,我可以将此移动到下一个视图,而不是右键,按(值)导航器(context).push(MaterialPageRoute(builder:(context){return NextView(value:value);}));,,,对吗?我想我唯一不明白的是,在代码的第一页上,那里的值是value:value,这意味着在第二页上它应该是NextView({this.value}),,this.valuefrompreviousview是否应该仅从第二页开始计算?@Aia'sBlog我已经更改了类名和一些变量。请检查是否更清楚?最后一个请求,您可以将此转换为statefulwidget吗?:Pwait,,那么下一个视图是第二页?而移动到下一个视图是第一个?或者我错了,,哈哈哈,,,你能像第一个视图和第二个视图那样做吗:)要进一步了解下一个视图是第二个视图,它需要上一个视图中的代码,从上一个视图中输入值,然后在上一个视图中,我可以将此移动到下一个视图,改为右键,,,按(值)导航器。的(上下文)。按(MaterialPageRoute(builder:(context){return NextView(value:value);});,,,这是对的吗?我想我唯一不明白的是,在代码的第一页,那里的值是value:value,这意味着在第二页它应该是NextView({this.value}),,是不是应该从第二页开始,this.valuefrompreviousview应该只是值?@Aia'sBlog我已经更改了类名和一些变量。请检查是否更清楚?最后一个请求,您可以将此发送到statefulwidget吗?:请允许我试着给它最后一个问题如何传递多个数据,对于这一个,它应该d是一个值,但如果在@override上有几个,则在@override上,\u OtherState createState()=>\u OtherState(value,value1,value2);,,,,,在state类上,\u OtherState(this.data1,this.data2,this.data3)…是吗?:)1。在第一个sc中创建一个列表
class MyWidget extends StatefulWidget {
  @override
  _MyWidgetState createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  @override
  Widget build(BuildContext context) {
    return Container(
        color: Colors.white,
        child: ListView.builder(
            shrinkWrap: true,
            itemCount: 15,
            itemBuilder: (con, ind) {
              return ListTile(
                  title:
                      Text('Item $ind', style: TextStyle(color: Colors.black)),
                  onTap: () {
                    Navigator.push(
                        con,
                        MaterialPageRoute(
                            builder: (cc) => OtherScreen(value: 'Item $ind')));
                  });
            }));
  }
}

class OtherScreen extends StatefulWidget {
  //add your custom data
  final String value;

  OtherScreen({Key k, @required this.value}) : super(key: k);

  @override
  _OtherState createState() => _OtherState(value);
}

class _OtherState extends State<OtherScreen> {
  _OtherState(this.data);

  String data;

  @override
  Widget build(BuildContext context) {
    return Container(
        alignment: Alignment.center,
        color: Colors.white,
        child: Text(data, style: TextStyle(color: Colors.black)));
  }
}