Skip to content

Instantly share code, notes, and snippets.

@noga-dev
Created March 21, 2020 23:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save noga-dev/bf51c814ce2d6f2117acc6c352808f83 to your computer and use it in GitHub Desktop.
Save noga-dev/bf51c814ce2d6f2117acc6c352808f83 to your computer and use it in GitHub Desktop.
CupertinoPicker example
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
void main() => runApp(
MaterialApp(
debugShowCheckedModeBanner: false,
home: CupPickerDemo(),
),
);
class CupPickerDemo extends StatefulWidget {
final double itemExtent = 100;
@override
_CupPickerDemo createState() => _CupPickerDemo();
}
class _CupPickerDemo extends State<CupPickerDemo> {
double total = 1;
FixedExtentScrollController firstController;
FixedExtentScrollController secondController;
@override
void initState() {
super.initState();
firstController = FixedExtentScrollController(initialItem: 0);
secondController = FixedExtentScrollController(initialItem: 0);
}
@override
void dispose() {
firstController.dispose();
secondController.dispose();
super.dispose();
}
void _pickerHandler() {
setState(
() => total = (firstController.selectedItem + 1).toDouble() +
(secondController.selectedItem == 0 ? 0 : .5),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Center(
child: Text(
total.toString(),
),
),
),
body: Center(
child: Row(
children: <Widget>[
Expanded(
child: Center(
child: CupertinoPicker(
itemExtent: widget.itemExtent,
scrollController: firstController,
onSelectedItemChanged: (int index) => _pickerHandler(),
children: List<Widget>.generate(10, (int index) {
return Center(
child: Text(
(++index).toString(),
),
);
}),
),
),
),
Expanded(
child: Center(
child: CupertinoPicker(
itemExtent: 100,
scrollController: secondController,
onSelectedItemChanged: (int index) => _pickerHandler(),
children: const <Widget>[
Center(
child: Text(
'.0',
),
),
Center(
child: Text(
'.5',
),
),
],
),
),
),
],
),
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment