Adding Date selector

This commit is contained in:
2021-03-25 17:19:15 +02:00
parent e290274a95
commit 77f658f09e
7 changed files with 120 additions and 70 deletions
+103
View File
@@ -0,0 +1,103 @@
import 'package:flutter/material.dart';
class DateSelector extends StatefulWidget {
@override
_DateSelectorState createState() => _DateSelectorState();
}
class _DateSelectorState extends State<DateSelector> {
final List<String> months = [
"Janvier",
"Février",
"Mars",
"Avril",
"Mai",
"Juin",
"Juillet",
"Aout",
"Septembre",
"Octobre",
"Novembre",
"Decembre"
];
var _selectedIndex = 0;
void _updateSelectedItem(int index) {
setState(() {
_selectedIndex = index;
});
}
@override
Widget build(BuildContext context) {
return SliverToBoxAdapter(
child: SizedBox(
height: 32,
child: ListView(
scrollDirection: Axis.horizontal,
children: _buildSelector(),
),
),
);
}
List<Widget> _buildSelector() {
return months
.asMap()
.map(
(key, value) => MapEntry(
key,
chipForRow(
label: value,
isSelected: key == _selectedIndex,
currentPosition: key,
),
),
)
.values
.toList();
}
Widget chipForRow({String label, bool isSelected, int currentPosition}) {
if (isSelected) {
return SizedBox(
height: 28,
child: TextButton(
onPressed: () { _updateSelectedItem(currentPosition); },
child: Text(
label,
style: TextStyle(
fontSize: 14,
color: Colors.white,
),
),
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Color(0xFFFF567E)),
shape: MaterialStateProperty.all(
RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(4),
),
),
),
),
),
);
} else {
return SizedBox(
height: 28,
child: TextButton(
onPressed: () { _updateSelectedItem(currentPosition); },
child: Text(
label,
style: TextStyle(
fontSize: 14,
color: Color(0xFF8F8F8F),
),
),
),
);
}
}
}