如何使用API​​数据制作动态复选框?

发布于 2025-02-09 01:48:50 字数 62 浏览 2 评论 0原文

如何使用listView.builder()进行操作并在flutter中单击

How to make using Listview.builder() and handle it click in flutter

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

知你几分 2025-02-16 01:48:50

实现目标的简单方法,尝试一下

import 'package:flutter/material.dart';

class SimpleTest extends StatefulWidget {
  const SimpleTest({Key? key}) : super(key: key);

  @override
  State<SimpleTest> createState() => _SimpleTestState();
}

class _SimpleTestState extends State<SimpleTest> {
  List<int> selectedItem = [];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          Expanded(
              child: ListView.builder(
                  itemCount: 8,
                  shrinkWrap: true,
                  itemBuilder: (context, index) {
                    return Container(
                      padding: const EdgeInsets.all(8.0),
                      child: Row(
                        children: [
                          Expanded(
                            child: CheckboxListTile(
                              title: Text("Check Box$index"),
                              value: selectedItem.contains(index) ? true : false,
                              onChanged: (newValue) {
                                if (selectedItem.contains(index)) {
                                  selectedItem.remove(index);
                                } else {
                                  selectedItem.add(index);
                                }
                                setState(() {});
                              },
                              controlAffinity: ListTileControlAffinity.leading, //  <-- leading Checkbox
                            ),
                          )
                        ],
                      ),
                    );
                  }))
        ],
      ),
    );
  }
}

Simple way to achieve your goal, try this

import 'package:flutter/material.dart';

class SimpleTest extends StatefulWidget {
  const SimpleTest({Key? key}) : super(key: key);

  @override
  State<SimpleTest> createState() => _SimpleTestState();
}

class _SimpleTestState extends State<SimpleTest> {
  List<int> selectedItem = [];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          Expanded(
              child: ListView.builder(
                  itemCount: 8,
                  shrinkWrap: true,
                  itemBuilder: (context, index) {
                    return Container(
                      padding: const EdgeInsets.all(8.0),
                      child: Row(
                        children: [
                          Expanded(
                            child: CheckboxListTile(
                              title: Text("Check Box$index"),
                              value: selectedItem.contains(index) ? true : false,
                              onChanged: (newValue) {
                                if (selectedItem.contains(index)) {
                                  selectedItem.remove(index);
                                } else {
                                  selectedItem.add(index);
                                }
                                setState(() {});
                              },
                              controlAffinity: ListTileControlAffinity.leading, //  <-- leading Checkbox
                            ),
                          )
                        ],
                      ),
                    );
                  }))
        ],
      ),
    );
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文