使用 Provider、Repository、MVC 的 flutter getx show dropdown
flutter getx show dropdown using Provider, Repository, MVC
我是 Flutter 的新手,任何人都可以分享您使用 getx 显示下拉列表的想法,我尝试使用 List Builder 列出。但不知道使用 GetX(MVC、提供商、存储库)的下拉菜单。
首先在你的控制器中声明一个变量
var selectedRole = 'CONTENT_CREATOR'.obs;
然后声明这个方法
void onSelected(String value) {
selectedRole.value = value;
registrationParam.value.roleType = selectedRole.value;
}
终于可以像这样从您的 UI 代码调用
Padding(
padding: const EdgeInsets.only(right: 8, left: 16),
child: Obx(
() => DropdownButton(
underline: SizedBox(),
isExpanded: true,
hint: Text('Select a role'),
value: _regController.selectedRole.value,
items: [
DropdownMenuItem(
value: "CONTENT_CREATOR",
child: Text("Content Creator")),
DropdownMenuItem(
value: "PR", child: Text("PR Agency")),
DropdownMenuItem(
value: "JOURNALIST",
child: Text("Journalist"))
],
onChanged: (val) {
_regController.onSelected(val);
},
),
)),
**您的初始值必须来自 DropdownMenuItem
的值
我是 Flutter 的新手,任何人都可以分享您使用 getx 显示下拉列表的想法,我尝试使用 List Builder 列出。但不知道使用 GetX(MVC、提供商、存储库)的下拉菜单。
首先在你的控制器中声明一个变量
var selectedRole = 'CONTENT_CREATOR'.obs;
然后声明这个方法
void onSelected(String value) {
selectedRole.value = value;
registrationParam.value.roleType = selectedRole.value;
}
终于可以像这样从您的 UI 代码调用
Padding(
padding: const EdgeInsets.only(right: 8, left: 16),
child: Obx(
() => DropdownButton(
underline: SizedBox(),
isExpanded: true,
hint: Text('Select a role'),
value: _regController.selectedRole.value,
items: [
DropdownMenuItem(
value: "CONTENT_CREATOR",
child: Text("Content Creator")),
DropdownMenuItem(
value: "PR", child: Text("PR Agency")),
DropdownMenuItem(
value: "JOURNALIST",
child: Text("Journalist"))
],
onChanged: (val) {
_regController.onSelected(val);
},
),
)),
**您的初始值必须来自 DropdownMenuItem
的值