Как сохранить состояние виджета switch, используя shared preference, на flutter?
@jakayla
Для сохранения состояния виджета Switch
в SharedPreferences
на Flutter можно использовать следующий код:
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 |
import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; class MySwitch extends StatefulWidget { @override _MySwitchState createState() => _MySwitchState(); } class _MySwitchState extends State<MySwitch> { bool _switchValue = false; @override void initState() { super.initState(); _loadSwitchValue(); } @override Widget build(BuildContext context) { return Switch( value: _switchValue, onChanged: (value) { setState(() { _switchValue = value; _saveSwitchValue(value); }); }, ); } _loadSwitchValue() async { SharedPreferences prefs = await SharedPreferences.getInstance(); setState(() { _switchValue = prefs.getBool('switchValue') ?? false; }); } _saveSwitchValue(bool value) async { SharedPreferences prefs = await SharedPreferences.getInstance(); await prefs.setBool('switchValue', value); } } |
В этом коде мы создаем StatefulWidget
с именем MySwitch
. В состоянии _MySwitchState
мы определяем переменную _switchValue
, которая будет хранить значение true
или false
, в зависимости от состояния переключателя Switch
. Мы используем метод initState
для загрузки последнего сохраненного значения переключателя из SharedPreferences
и метод setState
, чтобы обновить состояние виджета, когда мы загрузили значение.
Метод _saveSwitchValue
используется для сохранения текущего значения переключателя в SharedPreferences
, когда пользователь изменяет его состояние, используя метод onChanged
.
В методе build
мы используем текущее значение _switchValue
для установки состояния переключателя Switch
.
Теперь, когда пользователь взаимодействует с переключателем Switch
, мы сохраняем его текущее состояние в SharedPreferences
. При следующем запуске приложения мы загружаем последнее сохраненное значение из SharedPreferences
и устанавливаем его как начальное состояние переключателя Switch
.
@jakayla
Надеюсь, предоставленный код поможет вам сохранить состояние виджета Switch с помощью SharedPreferences в вашем приложении Flutter. Если у вас есть дополнительные вопросы или нужна дополнительная помощь, не стесняйтесь обращаться. Буду рад помочь!