in example/lib/pages/settings/settings_page.dart [153:183]
Widget _buildSwitchItem(SwitchItem item) {
return FutureBuilder<bool>(
future: item.valueLoader(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return ListTile(
title: Text(item.title),
trailing: const CircularProgressIndicator(),
);
} else if (snapshot.hasError) {
return ListTile(
title: Text(item.title),
subtitle: Text("Error: ${snapshot.error}"),
);
} else if (snapshot.hasData) {
return ListTile(
title: Text(item.title),
trailing: Switch(
value: snapshot.data!,
onChanged: (value) {
setState(() {
item.onChanged(value);
});
},
),
);
}
return const SizedBox.shrink();
},
);
}