首页 > 解决方案 > 如何为以下数据创建控制器?

问题描述

实际上我正在使用下拉按钮并想通过使用控制器(GetX / obx)而不是setstate来更改点击值,我不知道如何创建列表数据的控制器类。我正在使用 Getx 控制器并用 obx 包装下拉容器

{
  "name": "United States",
  "code": "US",
  "icon": "assets/icons/Flag_US.svg",
},
{
  "name": "Puerto Rico",
  "code": "PR",
  "icon": "assets/icons/Flag_PR.svg",
},

]; 这是我的下拉按钮代码:

 child: Obx(
                    () => DropdownButton(
                      value: fromCountry,
                      underline: SizedBox(),
                      items:
                          countriesList.map<DropdownMenuItem<String>>((e) {
                        return DropdownMenuItem<String>(
                          value: e['name']! + "-" + e['code']!,
                          child: Container(
                            padding: EdgeInsets.symmetric(
                                horizontal: MySize.size10),
                            child: Row(
                              children: [
                                Container(
                                  margin:
                                      EdgeInsets.only(right: MySize.size5),
                                  child: SvgPicture.asset(
                                    e["icon"].toString(),
                                    height: MySize.size20,
                                    width: MySize.size20,
                                    matchTextDirection: true,
                                  ),
                                ),
                                SizedBox(width: MySize.size10),
                                Text(
                                  e["name"].toString(),
                                ),
                              ],
                            ),
                          ),
                        );
                      }).toList(),
                      isExpanded: true,
                      icon: Icon(Icons.arrow_drop_down),
                      hint: Padding(
                        padding: EdgeInsets.symmetric(
                          horizontal: MySize.size5,
                        ),
                        child: Text(
                          "Select Country",
                        ),
                      ),
                      dropdownColor: Theme.of(context).backgroundColor,
                      onChanged: (dynamic value) {
                        countryController.onSelected(value);
                      },
                    ),
                  ),

标签: fluttercontrollerdart-null-safetyflutter-getx

解决方案


推荐阅读