flutter - 如何在 Flutter 的 ListView 中添加复选框?

标签 flutter

我从 How to create a checkbox using listview 中获取了以下代码当检查一项时,它会检查所有项目。我如何修复代码以不检查所有项目?

class CheckBoxInListView extends StatefulWidget {
  @override
  _CheckBoxInListViewState createState() => _CheckBoxInListViewState();
}

class _CheckBoxInListViewState extends State<CheckBoxInListView> {
  bool _isChecked = false;

  List<String> _texts = [
    "InduceSmile.com",
    "Flutter.io",
    "google.com",
    "youtube.com",
    "yahoo.com",
    "gmail.com"
  ];

  @override
  Widget build(BuildContext context) {
    return ListView(
      padding: EdgeInsets.all(8.0),
      children: _texts
          .map((text) => CheckboxListTile(
                title: Text(text),
                value: _isChecked,
                onChanged: (val) {
                  setState(() {
                    _isChecked = val;
                  });
                },
              ))
          .toList(),
    );
  }
}

最佳答案

只需制作一个“_isChecked”变量列表并使用它。


class CheckBoxInListView extends StatefulWidget {
  @override
  _CheckBoxInListViewState createState() => _CheckBoxInListViewState();
}

class _CheckBoxInListViewState extends State<CheckBoxInListView> {
  List<String> _texts = [
    "InduceSmile.com",
    "Flutter.io",
    "google.com",
    "youtube.com",
    "yahoo.com",
    "gmail.com"
  ];

  List<bool> _isChecked;

  @override
  void initState() {
    super.initState();
    _isChecked = List<bool>.filled(_texts.length, false);
  }

  @override
  Widget build(BuildContext context) {
    return ListView.builder(
      itemCount: _texts.length,
      itemBuilder: (context, index) {
        return CheckboxListTile(
          title: Text(_texts[index]),
          value: _isChecked[index],
          onChanged: (val) {
            setState(
              () {
                _isChecked[index] = val;
              },
            );
          },
        );
      },
    );
  }
}

关于flutter - 如何在 Flutter 的 ListView 中添加复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63788530/

相关文章:

layout - 显示我让 RenderFlex 溢出未处理?

flutter 错误: No TabController for TabBarView

flutter - 我的Flutter项目未运行(错误消息)

flutter - native 文件路径

flutter - 制作具有多行的某种行构建器并将JSON数据传递到其中的最佳方法是什么。 flutter

flutter - 如何在库比蒂诺日期选择器字段中显示初始日期

flutter - 如何在flutter中设置App Bar底部的标题和副标题

flutter - 快照错误类型 'int' 不是类型 'String' 的子类型

dart - 有没有一种方法可以使用 Firestorage 将集合转换为 map 列表,而无需 Streambuilder/widget?

navigation - Flutter-根据登录状态以不同的路线启动应用