@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. Если у вас есть дополнительные вопросы или нужна дополнительная помощь, не стесняйтесь обращаться. Буду рад помочь!