Flutter偏好设置管理插件notified_preferences_riverpod的使用

Flutter偏好设置管理插件notified_preferences_riverpod的使用

notified_preferences_riverpod 是一个简单的包,它提供了 notified_preferencesflutter_riverpod 之间的胶水方法。

使用方法

你可以像使用其他提供者一样使用它。确保在应用程序启动时设置一个 SharedPreferences 实例。

// 定义一个提供者来获取 SharedPreferences 实例
final preferencesProvider = 
    Provider<SharedPreferences>((_) => throw UnimplementedError());

// 创建一个设置提供者,用于管理特定键的偏好设置
final hasSeenTutorialProvider =
    createSettingProvider(key: 'hasSeenTutorial', initialValue: false);

void main() async {
    // 获取 SharedPreferences 实例
    final preferences = await SharedPreferences.getInstance();

    runApp(
        ProviderScope(
            overrides: [
                // 将 preferencesProvider 重写为已获取的实例
                preferencesProvider.overrideWith((_) => preferences),
            ],
            child: const App(),
        ),
    );
}

class App extends ConsumerWidget {
    @override
    Widget build(BuildContext context, WidgetRef ref) {
        // 监听 hasSeenTutorialProvider 的变化
        final hasSeenTutorial = ref.watch(hasSeenTutorialProvider).value;

        // 如果用户还没有看过教程,则显示 "Hello!"
        if (!hasSeenTutorial) return Text("Hello!");

        // 否则,显示退出教程按钮
        return OutlinedButton(
            child: Text("Exit tutorial"),
            onPressed: () {
                // 设置 hasSeenTutorial 为 true
                ref.read(hasSeenTutorialProvider).value = true;
            },
        );
    }
}

更多关于Flutter偏好设置管理插件notified_preferences_riverpod的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter偏好设置管理插件notified_preferences_riverpod的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


notified_preferences_riverpod 是一个用于管理 Flutter 应用程序中偏好设置的插件,它结合了 riverpod 状态管理库和 shared_preferences 插件。通过这个插件,你可以轻松地管理应用程序的偏好设置,并在设置发生变化时通知相关的组件进行更新。

以下是如何使用 notified_preferences_riverpod 插件的详细步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 notified_preferences_riverpodriverpod 的依赖:

dependencies:
  flutter:
    sdk: flutter
  riverpod: ^2.0.0
  notified_preferences_riverpod: ^0.1.0

然后运行 flutter pub get 来安装依赖。

2. 创建偏好设置管理器

接下来,你需要创建一个偏好设置管理器。这个管理器将负责与 shared_preferences 交互,并提供 riverpodProvider 以便在应用程序中使用。

import 'package:notified_preferences_riverpod/notified_preferences_riverpod.dart';
import 'package:riverpod/riverpod.dart';

final preferencesProvider = Provider<NotifiedPreferences>((ref) {
  return NotifiedPreferences();
});

3. 定义偏好设置项

你可以定义一些偏好设置项,例如用户是否启用了黑暗模式:

final darkModePreference = Preference<bool>(
  key: 'darkMode',
  defaultValue: false,
);

4. 在应用程序中使用偏好设置

你可以使用 riverpodProvider 来访问和更新偏好设置。

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

void main() {
  runApp(ProviderScope(child: MyApp()));
}

class MyApp extends ConsumerWidget {
  [@override](/user/override)
  Widget build(BuildContext context, WidgetRef ref) {
    final preferences = ref.watch(preferencesProvider);
    final darkMode = ref.watch(preferences.watch(darkModePreference));

    return MaterialApp(
      theme: darkMode ? ThemeData.dark() : ThemeData.light(),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Notified Preferences Riverpod Example'),
        ),
        body: Center(
          child: Switch(
            value: darkMode,
            onChanged: (value) {
              ref.read(preferencesProvider).set(darkModePreference, value);
            },
          ),
        ),
      ),
    );
  }
}
回到顶部