[Flutter]CupertinoPickerの要素を真ん中に寄せるには?

Flutter

どうも、ちょげ(@chogetarou)です。

CupertinoPickerの要素を真ん中に表示されるようにする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

CupertinoPickerの要素を真ん中に表示するには、Centerを使います。

具体的には、CupertinoPickerの引数「children」に指定しているウェジェットを全てCenterでラップします。

CupertinoPicker(
  children: [
    Center(child: Text("アイテム1"),)
    Center(child: Text("アイテム2"),)
    Center(child: Text("アイテム3"),)
    ・・・
  ],
  ・・・
),

Centerを使えば、CupertinoPickerの要素を真ん中に寄せることが出来ます。

使用例

以下は、使用例です。

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(
                decoration: BoxDecoration(
                height: 200,
                child: CupertinoPicker(
                  itemExtent: 50.0,
                  children: _fruits.map((e) => Center(child: Text(e))).toList(),
                  onSelectedItemChanged: (newValue) {
                    setState(() {
                      _selectedValue = newValue;
                    });
                  },
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

コメント

タイトルとURLをコピーしました