设置选择的初始CupertinoPicker选择的索引

时间:2018-09-18 11:04:25

标签: flutter cupertinopicker

我是Flutter开发的新手,我试图在CupertinoPicker内部showCupertinoModalPopup,这是通过单击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(): [],),);});

是否有initialValueCupertinoPicker可以设置的内容?

2 个答案:

答案 0 :(得分:9)

如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(): [],),);});

答案 1 :(得分:2)

您可以使用procdump设置 initialValue 。请参阅this

相关问题