Flutter本地数据存储管理插件shared_preferences_explorer的使用

Flutter本地数据存储管理插件shared_preferences_explorer的使用

插件介绍

shared_preferences_explorer 是一个用于在屏幕上查看 SharedPreferences 的的 Flutter 包装器。它支持 SharedPreferences, SharedPreferencesAsync, 和 SharedPreferencesWithCache

使用示例

  1. 将应用程序的根 widget 包裹在 SharedPreferencesExplorer 中,并点击锚点按钮以打开。
  2. 锚点按钮可以拖动,初始位置可以通过 initialAnchorAlignment 设置。
void main() {
  runApp(
    SharedPreferencesExplorer(
      // initialAnchorAlignment: AnchorAlignment.bottomLeft,
      child: YourApp(),
    ),
  );
}

或者,在应用程序的调试菜单等处使用 SharedPreferencesExplorerScreen

Navigator.of(context).push(
  MaterialPageRoute<void>(
    builder: (context) =&gt const SharedPreferencesExplorerScreen(),
  ),
);

示例代码

import 'package:example/my_app.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:shared_preferences_explorer/shared_preferences_explorer.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  final prefs = await SharedPreferences.getInstance();
  await prefs.clear();

  final prefsAsync = SharedPreferencesAsync();
  await prefsAsync.clear();

  await prefs.setInt('counter', 10);
  await prefs.setBool('repeat', true);
  await prefs.setDouble('decimal', 1.5);
  await prefs.setString('action', 'Start');
  await prefs.setStringList('items', ['Earth', 'Moon', 'Sun']);

  await prefsAsync.setString('action-async', 'Stop');

  runApp(
    const SharedPreferencesExplorer(
      // initialAnchorAlignment: AnchorAlignment.bottomLeft,
      child: MyApp(),
    ),
  );
}

更多关于Flutter本地数据存储管理插件shared_preferences_explorer的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter本地数据存储管理插件shared_preferences_explorer的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用shared_preferences_explorer插件进行本地数据存储管理的示例代码。shared_preferences_explorer是一个辅助工具,用于探索和测试shared_preferences插件的功能。不过,实际开发中我们更常用的是shared_preferences本身。因此,下面的例子将涵盖如何集成和使用shared_preferences,同时提及如何使用shared_preferences_explorer来辅助测试。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.15  # 确保使用最新版本
  shared_preferences_explorer: ^2.0.0  # 确保使用最新版本

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

2. 使用shared_preferences进行数据存储

在你的Flutter项目中,你可以使用SharedPreferences来存储和读取键值对数据。下面是一个简单的例子:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SharedPreferencesDemo(),
    );
  }
}

class SharedPreferencesDemo extends StatefulWidget {
  @override
  _SharedPreferencesDemoState createState() => _SharedPreferencesDemoState();
}

class _SharedPreferencesDemoState extends State<SharedPreferencesDemo> {
  late SharedPreferences _preferences;

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

  Future<void> _initializePreferences() async {
    _preferences = await SharedPreferences.getInstance();
  }

  void _saveData() async {
    await _preferences.setString('my_key', 'my_value');
    setState(() {});  // 更新UI,如果有需要的话
  }

  String? _readData() {
    return _preferences.getString('my_key');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Shared Preferences Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            Text('Stored Value: ${_readData() ?? 'N/A'}'),
            ElevatedButton(
              onPressed: _saveData,
              child: Text('Save Data'),
            ),
          ],
        ),
      ),
    );
  }
}

3. 使用shared_preferences_explorer进行测试

shared_preferences_explorer是一个非常有用的工具,它允许你在应用的运行时探索和测试SharedPreferences的内容。要使用它,你只需在应用的某个地方(比如调试页面)引入并显示它。

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

// ... (MyApp and SharedPreferencesDemo classes as above)

class DebugPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Debug Page'),
      ),
      body: SharedPreferencesExplorer(),
    );
  }
}

// 在MyApp的某个地方添加路由到DebugPage,比如通过底部导航栏
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: BottomNavigationBarDemo(),
    );
  }
}

class BottomNavigationBarDemo extends StatefulWidget {
  @override
  _BottomNavigationBarDemoState createState() => _BottomNavigationBarDemoState();
}

class _BottomNavigationBarDemoState extends State<BottomNavigationBarDemo> {
  int _selectedIndex = 0;
  static List<Widget> _widgetOptions = <Widget>[
    SharedPreferencesDemo(),
    DebugPage(),  // 添加DebugPage作为选项
  ];

  void _onItemTapped(int index) {
    setState(() {
      _selectedIndex = index;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Bottom Navigation Bar Demo'),
      ),
      body: Center(
        child: _widgetOptions.elementAt(_selectedIndex),
      ),
      bottomNavigationBar: BottomNavigationBar(
        items: <BottomNavigationBarItem>[
          BottomNavigationBarItem(
            icon: Icon(Icons.home),
            label: 'Home',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.settings),
            label: 'Debug',
          ),
        ],
        currentIndex: _selectedIndex,
        onTap: _onItemTapped,
      ),
    );
  }
}

在这个例子中,我们添加了一个名为DebugPage的新页面,它使用SharedPreferencesExplorer来显示和编辑SharedPreferences的内容。这样,你就可以在开发过程中方便地测试和调试你的数据存储逻辑了。

注意:在生产环境中,通常不会将SharedPreferencesExplorer包含在应用内,因为它主要用于开发和调试目的。

回到顶部