Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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 如何在颤振中动态设置多个复选框并将它们的值合并在一起_Flutter_Dart_Checkbox_Dynamically Generated - Fatal编程技术网

Flutter 如何在颤振中动态设置多个复选框并将它们的值合并在一起

Flutter 如何在颤振中动态设置多个复选框并将它们的值合并在一起,flutter,dart,checkbox,dynamically-generated,Flutter,Dart,Checkbox,Dynamically Generated,我在颤振方面是新手。我在创建包含多个项目的复选框时遇到了一个问题,然后用户还可以从复选框列表中选择多个项目。请帮帮我,伙计们。你们可以试试这个小部件CheckboxListTile: 您可以尝试此小部件CheckboxListTile: 这里有一个完整的例子,说明了如何实现它,以及如何将这些价值结合起来 映射是键值对中的数据集合。地图中的数据可以通过其相关键轻松访问。我们将创建一个包含字符串和布尔数据的映射数组。字符串是复选框的名称,布尔值用于确定选中或不选中哪个复选框 import 'pack

我在颤振方面是新手。我在创建包含多个项目的复选框时遇到了一个问题,然后用户还可以从复选框列表中选择多个项目。请帮帮我,伙计们。

你们可以试试这个小部件CheckboxListTile:

您可以尝试此小部件CheckboxListTile:


这里有一个完整的例子,说明了如何实现它,以及如何将这些价值结合起来

映射是键值对中的数据集合。地图中的数据可以通过其相关键轻松访问。我们将创建一个包含字符串和布尔数据的映射数组。字符串是复选框的名称,布尔值用于确定选中或不选中哪个复选框

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
          appBar: AppBar(
            centerTitle: true,
            backgroundColor: Colors.deepPurple[400],
            title: Text("Multiple Checkbox Dynamically"),
          ),
          body: SafeArea(
              child : Center(
                child:DynamicallyCheckbox(),
              )
          )
      ),
    );
  }
}

class DynamicallyCheckbox extends StatefulWidget {
  @override
  DynamicallyCheckboxState createState() => new DynamicallyCheckboxState();
}

class DynamicallyCheckboxState extends State {

  Map<String, bool> List = {
    'Egges' : false,
    'Chocolates' : false,
    'Flour' : false,
    'Fllower' : false,
    'Fruits' : false,
  };

  var holder_1 = [];

  getItems(){
    List.forEach((key, value) {
      if(value == true)
      {
        holder_1.add(key);
      }
    });

    // Printing all selected items on Terminal screen.
    print(holder_1);
    // Here you will get all your selected Checkbox items.

    // Clear array after use.
    holder_1.clear();
  }

  @override
  Widget build(BuildContext context) {
    return Column (children: <Widget>[

      RaisedButton(
        child: Text(" Get Checked Checkbox Values "),
        onPressed: getItems,
        color: Colors.pink,
        textColor: Colors.white,
        splashColor: Colors.grey,
        padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
      ),

      Expanded(
        child :
        ListView(
          children: List.keys.map((String key) {
            return new CheckboxListTile(
              title: new Text(key),
              value: List[key],
              activeColor: Colors.deepPurple[400],
              checkColor: Colors.white,
              onChanged: (bool value) {
                setState(() {
                  List[key] = value;
                });
              },
            );
          }).toList(),
        ),
      ),]);
  }
}

From:

这里有一个完整的示例,说明如何创建它以及如何将该值组合在一起

映射是键值对中的数据集合。地图中的数据可以通过其相关键轻松访问。我们将创建一个包含字符串和布尔数据的映射数组。字符串是复选框的名称,布尔值用于确定选中或不选中哪个复选框

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
          appBar: AppBar(
            centerTitle: true,
            backgroundColor: Colors.deepPurple[400],
            title: Text("Multiple Checkbox Dynamically"),
          ),
          body: SafeArea(
              child : Center(
                child:DynamicallyCheckbox(),
              )
          )
      ),
    );
  }
}

class DynamicallyCheckbox extends StatefulWidget {
  @override
  DynamicallyCheckboxState createState() => new DynamicallyCheckboxState();
}

class DynamicallyCheckboxState extends State {

  Map<String, bool> List = {
    'Egges' : false,
    'Chocolates' : false,
    'Flour' : false,
    'Fllower' : false,
    'Fruits' : false,
  };

  var holder_1 = [];

  getItems(){
    List.forEach((key, value) {
      if(value == true)
      {
        holder_1.add(key);
      }
    });

    // Printing all selected items on Terminal screen.
    print(holder_1);
    // Here you will get all your selected Checkbox items.

    // Clear array after use.
    holder_1.clear();
  }

  @override
  Widget build(BuildContext context) {
    return Column (children: <Widget>[

      RaisedButton(
        child: Text(" Get Checked Checkbox Values "),
        onPressed: getItems,
        color: Colors.pink,
        textColor: Colors.white,
        splashColor: Colors.grey,
        padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
      ),

      Expanded(
        child :
        ListView(
          children: List.keys.map((String key) {
            return new CheckboxListTile(
              title: new Text(key),
              value: List[key],
              activeColor: Colors.deepPurple[400],
              checkColor: Colors.white,
              onChanged: (bool value) {
                setState(() {
                  List[key] = value;
                });
              },
            );
          }).toList(),
        ),
      ),]);
  }
}

发件人:

您能更好地解释一下您想做什么吗?您的用例是什么?我想创建一个包含多个项目的复选框列表视图&当用户开始选择它们时,他们将开始添加到一个新数组中,然后我必须将所有选择的项目显示到包含更新项目的文本小部件中。您能更好地解释一下您想要做什么吗?您的用例是什么?我想创建一个包含多个项目的复选框列表视图&当用户开始选择它们时,他们将开始添加到一个新数组中,然后我必须将所有选择的项目显示到包含更新项目的文本小部件中。感谢分享您的代码,我还需要一件事,当我选择任何项目的形式复选框,它将自动添加到新的数组或地图所有选定的项目,然后我必须显示在屏幕上使用文本小部件选定的项目。如果你能在这方面帮助我,我将非常高兴。请帮助我。谢谢分享你的代码,我还需要一件事,当我选中任何项目表单复选框时,它会自动将所有选中的项目添加到新的数组或地图中,然后我必须使用文本小部件在屏幕上显示选中的项目。如果你能帮我,我会很高兴的。请帮我
flutter: [Egges, Chocolates, Fllower, Fruits]