Как использовать Flutter hive для создания метки в качестве кнопки fabourite?

#flutter #dart

Вопрос:

Я разрабатываю приложение для цитат в качестве проекта для начинающих в flutter. У меня в приложении несколько страниц. Прямо сейчас я хочу создать кнопку со значком, которая будет использоваться в качестве закладки (Пометить как избранное) для пользователя.А в панели приложений появится любимый вариант, где пользователь сможет найти отмеченные номера страниц.Локальная база данных кажется мне слишком запутанной.Как я могу использовать Улей для решения этой проблемы.

 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; });},
        )
    )])

  ),
);
 

}
}

Ответ №1:

Чтобы добавить в закладки или добавить избранное, вам необходимо сохранить цитаты. Для этого вам нужно добавить эти два пакета https://pub.dev/packages/hive и https://pub.dev/packages/hive_flutter. То, о чем вы просите, касается всего кода, поэтому я предлагаю вам ознакомиться с этой простой документацией по реализации hive. https://docs.hivedb.dev/#/README

Для краткого обзора обратитесь к этому коду.

После инициализации await Hive.initFlutter(); и открытия окна await Hive.openBox('testBox'); в main() .

Создайте ссылку на поле в соответствующем классе, затем добавьте значение box.put('key', 'Value'); , в котором Hive хранит данные в парах ключ-значение.