Flutter : SharedPreferencesを使って設定画面を作成する

https://pub.dev/packages/shared_preferences を使用して、Flutterに設定画面を作成する。

Switch Widgetの値を保存、表示させる。

ソース。

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

import '../../resources/string.dart' as SR;

class SettingsPage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => SettingsPageState();
}

class SettingsPageState extends State<SettingsPage> {
  static const switch_default_value = false;
  static const switch_key = "test_switch";

  SharedPreferences _prefs;
  bool _switchValue = switch_default_value;

  @override
  void initState() {
    _initPreferences();
    super.initState();
  }

  void _initPreferences() {
    SharedPreferences.getInstance().then((value){
      _prefs = value;

      setState(() {
        _switchValue = _prefs.getBool(switch_key) ?? switch_default_value;
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text(SR.page_title_settings),
      ),
      body: Column(
        children: <Widget>[
          Switch(
              onChanged: switchChanged,
              value:_switchValue,
          ),
        ],
      ),
    );
  }
  void switchChanged(bool value) {
    _prefs.setBool(switch_key, value);
  }
}

GCP のアウトラインを掴みつつ、技術視点のバランスも取れていて有用

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です