import 'package:fast_network_navigation/structs/preferences.dart'; import 'package:flutter/material.dart'; class ProfilePage extends StatefulWidget { @override _ProfilePageState createState() => _ProfilePageState(); } class _ProfilePageState extends State { @override Widget build(BuildContext context) { return ListView( children: [ // First a round, centered image Center( child: CircleAvatar( radius: 100, child: Icon(Icons.person, size: 100), ) ), Center( child: Text('Curious traveler', style: TextStyle(fontSize: 24)) ), Padding( padding: EdgeInsets.all(10), ), Text('Please rate your preferences for the following activities:'), // Now the sliders ImportanceSliders() ] ); } } class ImportanceSliders extends StatefulWidget { @override State createState() => _ImportanceSlidersState(); } class _ImportanceSlidersState extends State { UserPreferences _prefs = UserPreferences(); @override void initState() { super.initState(); _prefs.load(); } List _createSliders() { List sliders = []; for (SinglePreference pref in _prefs.preferences) { sliders.add(Card( child: ListTile( leading: pref.icon, title: Text(pref.name), subtitle: Slider( value: pref.value.toDouble(), min: 0, max: 10, divisions: 10, label: pref.value.toString(), onChanged: (double newValue) { setState(() { pref.value = newValue.toInt(); _prefs.save(); }); }, ) ), margin: EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 0), shadowColor: Colors.grey, )); } return sliders; } @override Widget build(BuildContext context) { return Column(children: _createSliders()); } }