首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在颤振时从选定的项目中获得取消选定的项?

如何在颤振时从选定的项目中获得取消选定的项?
EN

Stack Overflow用户
提问于 2022-10-11 06:29:00
回答 1查看 20关注 0票数 0

我使用Map函数构建了多个选择芯片。当选择一个芯片时,颜色会变黄。当选定的芯片,然后打印选定的芯片。就像这样,我想选择芯片并显示它们中未选择的芯片。

代码

代码语言:javascript
复制
 List<String> hobbyList = [
    'Shopping',
    'Brunch',
    'Music',
    'Road Trips',
    'Tea',
    'Trivia',
    'Comedy',
    'Clubbing',
    'Drinking',
    'Wine',
  ];

  List<String>? selectedHobby = [];
代码语言:javascript
复制
Column(
                        children: <Widget>[
                          const SizedBox(height: 16),
                          Wrap(
                            children: hobbyList.map(
                              (hobby) {
                                bool isSelected = false;
                                if (selectedHobby!.contains(hobby)) {
                                  isSelected = true;
                                }
                                return GestureDetector(
                                  onTap: () {
                                    if (!selectedHobby!.contains(hobby)) {
                                      if (selectedHobby!.length < 50) {
                                        selectedHobby!.add(hobby);
                                        setState(() {});
                                        print(selectedHobby);
                                      }
                                    } else {
                                      selectedHobby!.removeWhere(
                                          (element) => element == hobby);
                                      setState(() {});
                                      print(selectedHobby);
                                    }
                                  },
                                  child: Container(
                                    margin: const EdgeInsets.symmetric(
                                        horizontal: 5, vertical: 4),
                                    child: Container(
                                      padding: const EdgeInsets.symmetric(
                                          vertical: 5, horizontal: 12),
                                      decoration: BoxDecoration(
                                          color: isSelected
                                              ? HexColor('#F5F185')
                                              : HexColor('#D9D9D9'),
                                          borderRadius:
                                              BorderRadius.circular(18),
                                          border: Border.all(
                                              color: isSelected
                                                  ? HexColor('#F5F185')
                                                  : HexColor('#D9D9D9'),
                                              width: 2)),
                                      child: Text(
                                        hobby,
                                        style: TextStyle(
                                            color: isSelected
                                                ? Colors.black
                                                : Colors.black,
                                            fontSize: 14,
                                            fontWeight: FontWeight.w600),
                                      ),
                                    ),
                                  ),
                                );
                              },
                            ).toList(),
                          ),
                        ],
                      ),

首先,所有用户都选择“购物”、“早午餐”和“音乐”,然后在控制台中打印出来,颜色就像这样变成黄色。控制台..。

用户界面

现在用户取消选择“音乐”和“早午餐”项..用户界面

控制台

**现在选择的项目只是“购物”,正如我在上面提到的那样,这是完美的展示。这样就需要单独显示未选择的列表。

例:

unselectedList :-早午餐,音乐**

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-11 06:34:21

再创建一个这样的列表:

代码语言:javascript
复制
  List<String>? deSelectedHobby = [];

并在使用取消选择任何项时更新它:

代码语言:javascript
复制
                               onTap: () {
                                    if (!selectedHobby!.contains(hobby)) {
                                      if (selectedHobby!.length < 50) {
                                        selectedHobby!.add(hobby);
                                        deSelectedHobby!.removeWhere(
                                          (element) => element == hobby);
                                        setState(() {});
                                        print(selectedHobby);
                                      }
                                    } else {
                                      selectedHobby!.removeWhere(
                                          (element) => element == hobby);
                                      deSelectedHobby!.add(hobby);
                                      setState(() {});
                                      print(selectedHobby);
                                    }
                                  },
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74023845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档