Flutter本地缓存插件flutter_hi_cache_zq的使用
Flutter本地缓存插件flutter_hi_cache_zq的使用
使用
const like = 'sample';
额外信息
基于shared_preferences
。适用于iOS、Android和Web平台。
示例代码
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:flutter_hi_cache_zq/flutter_hi_cache_zq.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// 这个小部件是你的应用程序的根。它是一个有状态的小部件,意味着它有一个状态对象(在下面定义),该状态对象包含影响其外观的字段。
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// 这是你的应用的主题。
//
// 尝试一下:尝试运行你的应用程序(使用"flutter run")。你会看到应用程序有一个紫色的工具栏。然后,在不退出应用程序的情况下,尝试将以下颜色方案中的seedColor更改为Colors.green,
// 并触发“热重载”(保存更改或按下支持Flutter的IDE中的“热重载”按钮,或者在命令行启动应用程序时按“r”)。
//
// 注意:计数器没有重置为零;应用程序的状态在重新加载期间不会丢失。要重置状态,使用热重启。
//
// 这也适用于代码,而不仅仅是值:大多数代码更改都可以通过仅进行热重载来测试。
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: FutureBuilder<dynamic>(
future: HiCache.preInit(),
builder: (BuildContext context, AsyncSnapshot<dynamic> snapshot) {
var widget = snapshot.connectionState == ConnectionState.done
? const MyHomePage(title: 'HiCache Demo')
: const Scaffold(
body: Center(
child: CircularProgressIndicator(),
),
);
return widget;
},
),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
// 这个小部件是你的应用程序的主页。它是一个有状态的小部件,意味着它有一个状态对象(在下面定义),该状态对象包含影响其外观的字段。
// 这个类是状态的配置。它保存由父级(在这个例子中是App小部件)提供的值(在这个例子中是标题)并用于状态的构建方法。小部件子类中的字段总是标记为"final"。
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
int showResult = 0;
static const COUNT_KEY = 'key_count';
void _incrementCounter() {
// 设置整数值到缓存
HiCache.getInstance().setInt(COUNT_KEY, ++_counter);
// 更新UI显示缓存中的值
setState(() {
showResult = HiCache.getInstance().getInt(COUNT_KEY);
});
}
[@override](/user/override)
Widget build(BuildContext context) {
// 每次调用setState时都会重新运行此方法,例如上面的_incrementCounter方法所做的那样。
//
// Flutter框架已被优化以使重新运行构建方法变得快速,因此你可以重建任何需要更新的内容,而不是逐个更改小部件实例。
return Scaffold(
appBar: AppBar(
// 尝试一下:尝试在这里将颜色更改为特定颜色(可能是Colors.amber?),并触发热重载以查看工具栏的颜色发生变化,而其他颜色保持不变。
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
// 这里我们从App.build方法创建的MyHomePage对象中获取值,并将其用于设置我们的appbar标题。
title: Text(widget.title),
),
body: Center(
// Center是一个布局小部件。它接受一个子元素并将其中心定位在父元素中间。
child: Column(
// Column也是一个布局小部件。它接受一个子元素列表并垂直排列它们。默认情况下,它根据其子元素水平调整大小,并尝试与其父元素一样高。
//
// Column有各种属性可以控制它如何调整大小以及如何定位其子元素。这里我们使用mainAxisAlignment来垂直居中子元素;主轴是垂直轴,因为Columns是垂直的(交叉轴将是水平的)。
//
// 尝试一下:调用“调试绘制”(在IDE中选择“切换调试绘制”操作,或在控制台中按“p”),可以看到每个小部件的线框图。
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const Text(
'你已经按下了按钮这么多次:',
),
Text(
'$showResult',
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
), // 这个尾随的逗号使自动格式化更美观。
);
}
}
更多关于Flutter本地缓存插件flutter_hi_cache_zq的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter本地缓存插件flutter_hi_cache_zq的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_hi_cache_zq
是一个用于 Flutter 的本地缓存插件,它可以帮助你在应用中轻松地存储和读取缓存数据。以下是如何使用 flutter_hi_cache_zq
插件的详细步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 flutter_hi_cache_zq
插件的依赖:
dependencies:
flutter:
sdk: flutter
flutter_hi_cache_zq: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 初始化缓存
在使用缓存之前,你需要先初始化缓存。通常在 main.dart
中的 main
函数中进行初始化:
import 'package:flutter/material.dart';
import 'package:flutter_hi_cache_zq/flutter_hi_cache_zq.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化缓存
await HiCache.init();
runApp(MyApp());
}
3. 存储数据
你可以使用 HiCache
类中的 set
方法来存储数据。支持存储的数据类型包括 String
、int
、double
、bool
和 List<String>
。
HiCache.setString('key1', 'Hello, World!');
HiCache.setInt('key2', 123);
HiCache.setDouble('key3', 45.67);
HiCache.setBool('key4', true);
HiCache.setStringList('key5', ['item1', 'item2']);
4. 读取数据
你可以使用 HiCache
类中的 get
方法来读取数据。根据存储的数据类型,使用相应的方法来获取数据。
String? value1 = HiCache.getString('key1');
int? value2 = HiCache.getInt('key2');
double? value3 = HiCache.getDouble('key3');
bool? value4 = HiCache.getBool('key4');
List<String>? value5 = HiCache.getStringList('key5');
5. 删除数据
你可以使用 HiCache
类中的 remove
方法来删除指定的缓存数据。
HiCache.remove('key1');
6. 清空缓存
你可以使用 HiCache
类中的 clear
方法来清空所有缓存数据。
HiCache.clear();
7. 检查缓存是否存在
你可以使用 HiCache
类中的 containsKey
方法来检查某个键是否存在。
bool exists = HiCache.containsKey('key1');
8. 获取所有键
你可以使用 HiCache
类中的 getKeys
方法来获取所有缓存的键。
Set<String> keys = HiCache.getKeys();
9. 获取缓存大小
你可以使用 HiCache
类中的 getSize
方法来获取当前缓存的总大小。
int size = HiCache.getSize();
10. 设置缓存过期时间
你可以使用 HiCache
类中的 setWithExpiry
方法来设置缓存数据的过期时间。
HiCache.setWithExpiry('key6', 'This will expire in 10 seconds', Duration(seconds: 10));
11. 检查缓存是否过期
你可以使用 HiCache
类中的 isExpired
方法来检查某个键的缓存是否已过期。
bool isExpired = HiCache.isExpired('key6');