I want to use a ListWheelScrollView in Flutter but only output the Selected Item after its Selected. So beacause now when i go from the bottom to the Top in one Go it outputs every item...
This is my Code:
List<int> numbers = List.generate(3, (index) => index + 1);
void _updateSelectedCardType(int index) {
setState(() {
_selectedIndex = index;
switch (index) {
case 0:
selectedCard = '1';
break;
case 1:
selectedCard = '2';
break;
case 2:
selectedCard = '3';
break;
}
sleep(const Duration(seconds: 1));
print('Selected card type: $selectedCard');
}
Here I tried to only output it after a second so if its selected and doesnt change I can print it... any idea on how to do it
try that
import 'dart:async';
import 'package:flutter/material.dart';
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
int _selectedIndex = 0;
String selectedCard = '1';
Timer? _timer;
List<int> numbers = List.generate(3, (index) => index + 1);
@override
void dispose() {
_timer?.cancel();
super.dispose();
}
void _onSelectedItemChanged(int index) {
setState(() {
_selectedIndex = index;
switch (index) {
case 0:
selectedCard = '1';
break;
case 1:
selectedCard = '2';
break;
case 2:
selectedCard = '3';
break;
}
});
_timer?.cancel();
_timer = Timer(Duration(milliseconds: 500), () {
print('Selected card type: $selectedCard');
});
}
@override
Widget build(BuildContext context) {
return ListWheelScrollView(
itemExtent: 50,
children: numbers.map((number) {
return Center(child: Text('$number'));
}).toList(),
onSelectedItemChanged: _onSelectedItemChanged,
physics: FixedExtentScrollPhysics(),
);
}
}