我正在开发一个报价应用程序作为初学者练习项目在扑动。我有多个页面在我的应用程序。现在我要创建一个图标按钮,将执行作为书签(标记为最喜欢的)为用户。在应用程序栏将有一个最喜欢的选项,用户可以找到那些标记的页码。本地数据库对我来说似乎太混乱了。如何使用Hive来解决这个问题?
class p1 extends StatefulWidget {
@override
_p1State createState() => _p1State();
}
class _p1State extends State<p1> {
bool _isFavorite = true;
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body:Stack(
children:<Widget>[
Image(
image:AssetImage("Image/Chowsun1.jpg"),
fit:BoxFit.cover,
width: double.infinity,
height: double.infinity,
),
Align(alignment: Alignment.center,
child: Text(' Hello world '
,style: TextStyle(fontSize: 35.0,
color: Colors.white,
fontFamily: "Explora",
fontWeight: FontWeight.w900 ) )
),
Align(
alignment: Alignment.bottomLeft,
child: const Text(' 1 ',
style: TextStyle(
fontSize: 25.0,
fontFamily: "MonteCarlo",
color: Colors.white,
fontWeight: FontWeight.w900),
),
),
Align(
alignment: Alignment.bottomCenter,
child: FavoriteButton(
isFavorite: _isFavorite,
iconSize: 40,
iconDisabledColor: Colors.red,
iconColor: Colors.white,
valueChanged: (isFav) {setState(() { _isFavorite = isFav; });},
)
)])
),
);
}}
要收藏或添加收藏,您需要保存引号。为此,您需要添加这两个包https://pub.dev/packages/hive和https://pub.dev/packages/hive_flutter。你所要求的是整个代码,所以我建议你通过这个简单的文档hive实现。https://docs.hivedb.dev//README
查看下面的代码。
初始化await Hive.initFlutter();
后,在main()
中打开盒子await Hive.openBox('testBox');
。
在您各自的类中创建一个框引用,然后添加值box.put('key', 'Value');
Hive以键值对存储数据。