Flutter名言警句展示插件awesome_quotes的使用

Flutter名言警句展示插件awesome_quotes的使用

特性

返回一个随机的名言。名言存储在本地,无需网络连接即可使用。

这些名言来源于https://gist.github.com/erickedji/68802

使用方法

获取随机名言
import 'package:awesome_quotes/awesome_quotes.dart';

final quote = randomQuote();
print('文本: ${quote.text}');
print('作者: ${quote.author}');

完整示例代码

以下是一个完整的示例代码,展示了如何使用awesome_quotes插件来获取并显示随机名言。

示例代码
/*
 * Copyright (c) 2023, Pedro Alves. All rights reserved. Use of this source code
 * is governed by a MIT-style license that can be found in the LICENSE file.
 */

import 'package:flutter/material.dart';
import 'package:awesome_quotes/awesome_quotes.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 _quoteText = '';
  String _author = '';

  void _getRandomQuote() {
    // 调用 randomQuote() 获取随机名言
    final quote = randomQuote();

    // 更新 UI 中的名言文本和作者信息
    setState(() {
      _quoteText = quote.text;
      _author = quote.author;
    });
  }

  [@override](/user/override)
  void initState() {
    super.initState();
    // 初始化时获取一条随机名言
    _getRandomQuote();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('名言警句展示'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(
              _quoteText,
              style: TextStyle(fontSize: 20),
              textAlign: TextAlign.center,
            ),
            SizedBox(height: 10),
            Text(
              '- ${_author}',
              style: TextStyle(fontSize: 16, fontStyle: FontStyle.italic),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _getRandomQuote,
              child: Text('刷新名言'),
            ),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter名言警句展示插件awesome_quotes的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter名言警句展示插件awesome_quotes的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


awesome_quotes 是一个 Flutter 插件,用于在应用中展示名言警句。它可以帮助你轻松地在应用中集成名言警句的展示功能,并且支持自定义样式和动画效果。以下是使用 awesome_quotes 插件的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  awesome_quotes: ^1.0.0  # 请使用最新版本

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

2. 导入插件

在你的 Dart 文件中导入 awesome_quotes 插件:

import 'package:awesome_quotes/awesome_quotes.dart';

3. 使用 AwesomeQuotes 组件

AwesomeQuotes 是一个可以直接在 UI 中使用的组件。你可以在任何需要展示名言警句的地方使用它。

class QuotesScreen extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('名言警句'),
      ),
      body: Center(
        child: AwesomeQuotes(
          quotes: [
            "生活就像一盒巧克力,你永远不知道下一块是什么味道。",
            "成功是失败之母。",
            "知识就是力量。",
            "不积跬步,无以至千里;不积小流,无以成江海。",
          ],
          textStyle: TextStyle(fontSize: 20, color: Colors.black),
          animationDuration: Duration(seconds: 1),
          onQuoteChanged: (String quote) {
            print("当前名言: $quote");
          },
        ),
      ),
    );
  }
}

4. 自定义配置

AwesomeQuotes 组件支持多种自定义配置选项,例如:

  • quotes: 名言警句的列表。
  • textStyle: 名言警句的文本样式。
  • animationDuration: 名言警句切换的动画持续时间。
  • onQuoteChanged: 当名言警句发生变化时的回调函数。

5. 运行应用

完成上述步骤后,运行你的 Flutter 应用,你将看到一个展示名言警句的界面。

6. 更多功能

awesome_quotes 插件可能还支持更多高级功能,例如自动切换名言、背景图片、动画效果等。你可以查看插件的文档或源码以了解更多信息。

示例代码

以下是一个完整的示例代码:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Awesome Quotes Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: QuotesScreen(),
    );
  }
}

class QuotesScreen extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('名言警句'),
      ),
      body: Center(
        child: AwesomeQuotes(
          quotes: [
            "生活就像一盒巧克力,你永远不知道下一块是什么味道。",
            "成功是失败之母。",
            "知识就是力量。",
            "不积跬步,无以至千里;不积小流,无以成江海。",
          ],
          textStyle: TextStyle(fontSize: 20, color: Colors.black),
          animationDuration: Duration(seconds: 1),
          onQuoteChanged: (String quote) {
            print("当前名言: $quote");
          },
        ),
      ),
    );
  }
}
回到顶部