Flutter引用名言插件quotesy的功能使用

Flutter引用名言插件quotesy的功能使用

quotes 💬 #

When-you-want-something-all-the-universe

1. 一个鼓舞人心的名言集合。 #

这些名言包含在一个 单一 文件中: quotes.json 因此它们可以 轻松地 被用于 任何 项目。

2. 一个调用时返回随机名言的模块。 #

Hex pm npm package version pub package Elixir Build Status Dart Build Status codecov.io contributions welcome HitCount

为什么? #

我们需要一个可靠且 快速 的名言来源。 获取名言的方式有很多,包括多个API, 但我们想要的是一个 零延迟 的来源, 并且可以(可选地)离线工作, 所以我们从各种来源整理了一个数据库。

gandhi-future-depends-on-what-you-do-today

什么? #

  1. 一个包含数千条鼓舞人心名言的文件。
  2. 一个返回随机名言的模块。

quotes.json 文件可以用于 任何 项目或编程语言。

该模块可以从 ElixirJavaScriptNode.jsTypeScript 等)中使用。
如果你想在其他语言中使用它,请告诉我们

如何? #

你可以通过以下两种方式使用此项目:
A. 直接使用 quotes.json 名言列表(用于任何目的)。
B. 使用模块返回随机名言;以下为示例代码。


Flutter #

安装 #

首先确保你已经在 Flutter 项目中添加了 quotesy 包。运行以下命令来添加依赖:

dependencies:
  quotesy: ^1.0.0

然后运行以下命令以获取包:

flutter pub get

使用示例 #

以下是一个完整的 Flutter 应用程序示例,展示如何在应用中显示随机名言。

创建一个新的 Flutter 项目,并在主文件中实现以下代码:

// main.dart
import 'package:flutter/material.dart';
import 'package:quotesy/quotesy.dart';

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

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

class RandomQuotePage extends StatefulWidget {
  @override
  _RandomQuotePageState createState() => _RandomQuotePageState();
}

class _RandomQuotePageState extends State<RandomQuotePage> {
  Map<String, dynamic> _quote = {};

  Future<void> _fetchRandomQuote() async {
    final randomQuote = await Quotes.random();
    setState(() {
      _quote = randomQuote;
    });
  }

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('随机名言'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            if (_quote.isNotEmpty)
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: Text(
                  '"${_quote["text"]}"',
                  style: TextStyle(fontSize: 18),
                  textAlign: TextAlign.center,
                ),
              ),
            if (_quote.isNotEmpty)
              Text(
                '- ${_quote["author"]} -',
                style: TextStyle(fontSize: 14),
              ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _fetchRandomQuote,
              child: Text('获取新名言'),
            ),
          ],
        ),
      ),
    );
  }
}

说明

  1. 导入包:我们使用了 quotesy 包来获取随机名言。
  2. 随机名言获取:在 _fetchRandomQuote 函数中,通过 Quotes.random() 获取一条随机名言,并更新状态。
  3. UI展示:使用 Text 小部件来显示名言和作者,按钮点击后会重新获取新的名言。

效果图

运行上述代码后,应用程序将显示一条随机名言,并在点击按钮时刷新名言。

更多功能 #

除了随机名言外,还可以根据特定作者获取名言,或者通过标签筛选名言。例如:

// 获取特定作者的名言
final authorQuotesArray = await Quotes.byAuthor("William Shakespeare");

// 获取带有指定标签的名言
final taggedQuotes = await Quotes.randomByTag("inspiration");

更多关于Flutter引用名言插件quotesy的功能使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter引用名言插件quotesy的功能使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


quotesy 是一个用于 Flutter 的插件,它可以帮助你在应用中轻松地引用名言。这个插件提供了多种功能,包括获取随机名言、按作者或类别筛选名言等。以下是如何在 Flutter 项目中使用 quotesy 插件的详细步骤。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 quotesy 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  quotesy: ^1.0.0  # 请检查最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入包

在你的 Dart 文件中导入 quotesy 包。

import 'package:quotesy/quotesy.dart';

3. 使用 quotesy 获取名言

quotesy 提供了多种方法来获取名言。以下是一些常见的用法:

获取随机名言

String randomQuote = Quotesy.getRandomQuote();
print(randomQuote);

获取特定作者的名言

List<String> quotesByAuthor = Quotesy.getQuotesByAuthor('Albert Einstein');
quotesByAuthor.forEach((quote) => print(quote));

获取特定类别的名言

List<String> quotesByCategory = Quotesy.getQuotesByCategory('motivational');
quotesByCategory.forEach((quote) => print(quote));

获取所有名言

List<String> allQuotes = Quotesy.getAllQuotes();
allQuotes.forEach((quote) => print(quote));

4. 在 Flutter 应用中显示名言

你可以将获取到的名言显示在 Flutter 应用的 UI 中。以下是一个简单的示例:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: QuoteScreen(),
    );
  }
}

class QuoteScreen extends StatefulWidget {
  [@override](/user/override)
  _QuoteScreenState createState() => _QuoteScreenState();
}

class _QuoteScreenState extends State<QuoteScreen> {
  String _quote = '';

  void _getRandomQuote() {
    setState(() {
      _quote = Quotesy.getRandomQuote();
    });
  }

  [@override](/user/override)
  void initState() {
    super.initState();
    _getRandomQuote();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Random Quote'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(
              _quote,
              style: TextStyle(fontSize: 20, fontStyle: FontStyle.italic),
              textAlign: TextAlign.center,
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _getRandomQuote,
              child: Text('Get Another Quote'),
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部