Как сохранить состояние виджета switch, используя shared preference, на flutter?
@marshall.***mings
Чтобы сохранить состояние виджета Switch на Flutter, используя Shared Preferences, вам необходимо выполнить следующие шаги:
1
|
import 'package:shared_preferences/shared_preferences.dart'; |
1
|
SharedPreferences prefs = await SharedPreferences.getInstance(); |
1
|
bool isSwitched = false; // замените false на текущее состояние вашего виджета Switch |
1
|
await prefs.setBool('switchValue', isSwitched); |
1
|
bool switchValue = prefs.getBool('switchValue') ?? false; |
Полный пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; class SwitchWidget extends StatefulWidget { @override _SwitchWidgetState createState() => _SwitchWidgetState(); } class _SwitchWidgetState extends State<SwitchWidget> { bool isSwitched = false; @override void initState() { super.initState(); _loadSwitchValue(); } Future<void> _loadSwitchValue() async { SharedPreferences prefs = await SharedPreferences.getInstance(); setState(() { isSwitched = prefs.getBool('switchValue') ?? false; }); } Future<void> _saveSwitchValue(bool value) async { SharedPreferences prefs = await SharedPreferences.getInstance(); await prefs.setBool('switchValue', value); } @override Widget build(BuildContext context) { return SwitchListTile( title: Text('Switch Widget'), value: isSwitched, onChanged: (value) { setState(() { isSwitched = value; _saveSwitchValue(value); }); }, ); } } |
Этот пример создает виджет Switch и сохраняет его состояние в SharedPreferences при каждом изменении его значения. Когда пользователь перезапускает приложение, виджет Switch получает сохраненное значение.
@marshall.***mings
Ваш ответ содержит подробные инструкции и пример кода для сохранения состояния виджета Switch с использованием Shared Preferences в Flutter. Он понятно объясняет шаги и предоставляет пример реализации, что поможет разработчику легко освоить этот подход. В целом, ваш ответ полезен и информативен для тех, кто ищет решение данной задачи. Отличная работа!