设置选定的初始 CupertinoPicker 选定索引
Set selected initial CupertinoPicker chosen index
我是 Flutter 开发的新手,我正在尝试在 showCupertinoModalPopup
中 CupertinoPicker
,这是通过单击 CupertinoButton
触发的。
选择Provinsi (Province)
后,我可以再次点击按钮重新选择Province
,但应该是我选择的项目。
这是我的代码
showCupertinoModalPopup(
context: context,
builder: (_) {
return new SizedBox(
height: MediaQuery.of(context).size.height / 2,
child: new CupertinoPicker(
magnification: 1.2,
useMagnifier: true,
itemExtent: 32.0,
onSelectedItemChanged: (i) => setState(() => _chosenProvince = listProvince[i]),
children: r != null && listProvince != null ? listProvince.map((prov) {
return new Padding(
padding: const EdgeInsets.all(4.0),
child: new Text(
prov.name,
textAlign: TextAlign.center,
overflow: TextOverflow.ellipsis,
style: new TextStyle(
fontSize: 20.0,
),
),
);
}).toList(): [],),);});
有没有initialValue
或者CupertinoPicker
可以设置的东西?
您可以使用FixedExtentScrollController
设置初始值。参考this
如 Dinesh Balasubramanian 所述,您可以使用 FixedExtentScrollController
设置 initialValue
它将看起来像这样,例如从第四个元素开始:
showCupertinoModalPopup(
context: context,
builder: (_) {
return new SizedBox(
height: MediaQuery.of(context).size.height / 2,
child: new CupertinoPicker(
scrollController: FixedExtentScrollController(initialItem: 3),
magnification: 1.2,
useMagnifier: true,
itemExtent: 32.0,
onSelectedItemChanged: (i) => setState(() => _chosenProvince = listProvince[i]),
children: r != null && listProvince != null ? listProvince.map((prov) {
return new Padding(
padding: const EdgeInsets.all(4.0),
child: new Text(
prov.name,
textAlign: TextAlign.center,
overflow: TextOverflow.ellipsis,
style: new TextStyle(
fontSize: 20.0,
),
),
);
}).toList(): [],),);});
我是 Flutter 开发的新手,我正在尝试在 showCupertinoModalPopup
中 CupertinoPicker
,这是通过单击 CupertinoButton
触发的。
选择Provinsi (Province)
后,我可以再次点击按钮重新选择Province
,但应该是我选择的项目。
这是我的代码
showCupertinoModalPopup(
context: context,
builder: (_) {
return new SizedBox(
height: MediaQuery.of(context).size.height / 2,
child: new CupertinoPicker(
magnification: 1.2,
useMagnifier: true,
itemExtent: 32.0,
onSelectedItemChanged: (i) => setState(() => _chosenProvince = listProvince[i]),
children: r != null && listProvince != null ? listProvince.map((prov) {
return new Padding(
padding: const EdgeInsets.all(4.0),
child: new Text(
prov.name,
textAlign: TextAlign.center,
overflow: TextOverflow.ellipsis,
style: new TextStyle(
fontSize: 20.0,
),
),
);
}).toList(): [],),);});
有没有initialValue
或者CupertinoPicker
可以设置的东西?
您可以使用FixedExtentScrollController
设置初始值。参考this
如 Dinesh Balasubramanian 所述,您可以使用 FixedExtentScrollController
设置 initialValue
它将看起来像这样,例如从第四个元素开始:
showCupertinoModalPopup(
context: context,
builder: (_) {
return new SizedBox(
height: MediaQuery.of(context).size.height / 2,
child: new CupertinoPicker(
scrollController: FixedExtentScrollController(initialItem: 3),
magnification: 1.2,
useMagnifier: true,
itemExtent: 32.0,
onSelectedItemChanged: (i) => setState(() => _chosenProvince = listProvince[i]),
children: r != null && listProvince != null ? listProvince.map((prov) {
return new Padding(
padding: const EdgeInsets.all(4.0),
child: new Text(
prov.name,
textAlign: TextAlign.center,
overflow: TextOverflow.ellipsis,
style: new TextStyle(
fontSize: 20.0,
),
),
);
}).toList(): [],),);});