どうも、ちょげ(@chogetarou)です。
CupertinoPicker.builderを使う方法を紹介します。
方法

CupertinoPicker.builderを使うには、次の4つの引数を使います。
- itemBuilder : 1つ1つの要素を返す関数
- childCount : 要素の数
- itemExtent : 要素の高さ
- onSelectedItemChanged : 要素が変更された時に値を更新する処理
まず、値を保持する変数を用意します。
var _selectedValue = 0;
次に、CupertinoPicker.builderの引数「itemExtent」に要素の高さ、引数「childCount」に要素の数を指定します。
そして、引数「onSelectedItemChanged」には、要素が変更された時に変数を更新する処理を指定します。
CupertinoPicker.builder(
childCount: /*要素の数*/,
itemExtent: /*要素の高さ*/,
onSelectedItemChanged: (newValue) {
setState(() {
_selectedValue = newValue;
});
},
),
最後に、引数「itemBuilder」に1つ1つの要素を返す関数を指定します。
CupertinoPicker.builder(
childCount: _fruits.length,
itemExtent: 30,
onSelectedItemChanged: (newValue) {
setState(() {
_selectedValue = newValue;
});
},
itemBuilder: (context, index) {
return Item();
},
),
4つの引数を使えば、CupertinoPicker.builderを使うことが出来ます。
使用例
以下は、使用例です。

class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
var _selectedValue = 0;
final _fruits = [
"Apple",
"Banana",
"StrawBerry",
"Orange",
"Watermelon",
];
@override
Widget build(BuildContext context) {
return SafeArea(
child: CupertinoPageScaffold(
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text('${_fruits[_selectedValue]}'),
Container(
height: 200,
child: CupertinoPicker.builder(
childCount: _fruits.length,
itemExtent: 30,
onSelectedItemChanged: (newValue) {
setState(() {
_selectedValue = newValue;
});
},
itemBuilder: (context, index) {
return Text(_fruits[index]);
},
),
),
],
),
),
),
);
}
}

[Flutter]CupertinoDatePickerのテキストの色を白にするには?
CupertinoDatePickerのテキストカラーを白にする方法を紹介します。

[Flutter]CupertinoDatePickerの日付の上限を設定するには?
CupertinoDatePickerの日付の上限を設定する方法を紹介します。

[Flutter]CupertinoDatePickerを時間のみの選択にするには?
CupertinoDatePickerを時間だけ選択できるようにする方法を紹介します。

[Flutter]CupertinoDatePickerを年月日のみの選択にするには?
CupertinoDatePickerを年月日だけを選択できるようにする方法を紹介します。
コメント