flutter 如何在多选下拉菜单中设置初始值?

oxcyiej7  于 2023-02-25  发布在  Flutter
关注(0)|答案(3)|浏览(244)
child: MultiSelectDialogField(
                                    initialValue: [
                                      //
                                      controller.selectedEquipmentCategoryList

                                    ],
                                    decoration: BoxDecoration(border: Border()),
                                    buttonIcon: Icon(Icons.arrow_drop_down),
                                    items: controller.equipmentCategoryList
                                        .map(
                                          (equipmentCategory) => MultiSelectItem(
                                            equipmentCategory?.id,
                                            equipmentCategory?.name ?? '',
                                          ),
                                        )
                                        .toList(),
                                    onConfirm: (selectedOptionsList) => {
                                      controller.equipmentCategoriesSelected(
                                          selectedOptionsList)
                                    },
                                    chipDisplay: MultiSelectChipDisplay(),
                                  ),

我想在多选中预先填充某些值,但小部件无法做到。列表的数据(初始值)来自API,然后UI会更新(使用Getx)。

inn6fuwd

inn6fuwd1#

可以使用required选项上的“selected”属性设置select元素的默认值。这是一个布尔属性。默认情况下,下拉列表中将显示具有“selected”属性的选项

zmeyuzjn

zmeyuzjn2#

在Flutter中使用MultiSelectDialogField时,可以设置对话框打开时预先选择的初始值。要设置此初始值,需要提供希望最初选择的项目列表。
在给定代码中,MultiSelectDialogField的initialValue参数设置为[controller.selectedEquipmentCategoryList]。这意味着存储在controller.selectedEquipmentCategoryList变量中的所选设备类别列表将用作下拉列表的初始值。
因此,当用户打开下拉列表时,controller.selectedEquipmentCategoryList中的项目将已经被选中,并且用户可以根据需要添加或删除其他项目。

dvtswwa3

dvtswwa33#

"你会从这个想法中得到灵感"

var myInitialSelectedValues[] = myAPIList.where((e) => e.id == id).map((e) => e.value).toList()) ;
MultiSelectDialogField(
initialValue = myInitialSelectedValues;
),

其思想是用所选项的列表初始化视图(如果在API中有它们),然后将它们与常规列表进行比较,当第一个列表中的项与第二个列表中的项相等时,用将要传递给initialValue的那些项的索引填充列表

相关问题