Flutter版本展示插件version_banner的使用

Flutter版本展示插件version_banner的使用

Version Banner

一个可以显示当前应用程序版本的Banner小部件。可以与应用口味一起使用,以显示当前正在使用的应用口味。

使用步骤

此小部件应该包裹在MaterialAppCupertinoApp周围。

VersionBanner(
          text: "Yay!", // 显示的文字
          packageExtensions: [".dev"], // 匹配包名后缀
          child: MaterialApp(
                       debugShowCheckedModeBanner: false,
                       title: 'Flutter Demo',
                       theme: ThemeData(
                         primarySwatch: Colors.blue,
                       ),
                       home: MyHomePage(title: 'Flutter Demo Home Page'),
                     )
      );

packageExtensions会检查应用程序的包名是否包含给定数组中的字符串部分。如果包名包含数组中的字符串,则显示Banner。

可以更改以下属性:

  • color - Banner的颜色
  • textStyle - Banner的文本样式
  • text - 要显示的文本。如果设置为null,则会显示pubspec文件中的版本号
  • location - Banner在屏幕上的位置,基于类BannerLocation
  • packageExtensions - 检查应用程序的包名是否包含给定数组中的字符串部分。如果包名包含数组中的字符串,则显示Banner
  • visible - 决定Banner是否可见。如果设置为false,则覆盖packageExtensions属性

完整示例

以下是完整的示例代码,展示了如何使用version_banner插件来显示开发版本的Banner。

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

void main() {
  bool isDevVersion = true; // 是否为开发版本
  runApp(MyApp(isDevVersion)); // 运行应用程序
}

class MyApp extends StatelessWidget {
  bool isDevVersion; // 开发版本标志

  MyApp(this.isDevVersion); // 构造函数

  [@override](/user/override)
  Widget build(BuildContext context) {
    // 创建MaterialApp
    var materialApp = MaterialApp(
      debugShowCheckedModeBanner: false, // 禁用默认调试标志
      title: 'Flutter Demo', // 应用名称
      theme: ThemeData(
        primarySwatch: Colors.blue, // 主色调
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'), // 主页面
    );

    // 如果是开发版本,添加Banner
    if (isDevVersion) {
      return VersionBanner(
        packageExtensions: ["example"], // 匹配包名后缀
        child: materialApp, // 子组件
      );
    }

    // 否则直接返回MaterialApp
    return materialApp;
  }
}

// 主页面
class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;

  [@override](/user/override)
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0; // 计数器

  void _incrementCounter() {
    setState(() {
      _counter++; // 增加计数器
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title), // 设置标题
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center, // 居中对齐
          children: <Widget>[
            Text(
              '你点击按钮的次数:', // 提示文字
            ),
            Text(
              '$_counter', // 显示计数器值
              style: Theme.of(context).textTheme.display1, // 设置字体样式
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton( // 浮动按钮
        onPressed: _incrementCounter, // 点击事件
        tooltip: '增加', // 提示文字
        child: Icon(Icons.add), // 图标
      ),
    );
  }
}
1 回复

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


version_banner 是一个用于在 Flutter 应用中展示应用版本信息的插件。它可以在应用的某个角落(通常是右上角)显示当前应用的版本号、构建号等信息,方便开发者在调试和测试过程中快速识别应用的版本。

安装

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

dependencies:
  flutter:
    sdk: flutter
  version_banner: ^1.0.0

然后运行 flutter pub get 来安装依赖。

基本用法

  1. 导入包

    在你的 Dart 文件中导入 version_banner 包:

    import 'package:version_banner/version_banner.dart';
  2. 在应用中添加版本横幅

    你可以在 MaterialAppCupertinoAppbuilder 参数中使用 VersionBanner 来添加版本横幅。以下是一个简单的示例:

    import 'package:flutter/material.dart';
    import 'package:version_banner/version_banner.dart';
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          home: MyHomePage(),
          builder: (BuildContext context, Widget? child) {
            return VersionBanner(
              child: child!,
              location: BannerLocation.topEnd,
            );
          },
        );
      }
    }
    
    class MyHomePage extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('Flutter Demo Home Page'),
          ),
          body: Center(
            child: Text('Hello, world!'),
          ),
        );
      }
    }

    在这个示例中,VersionBanner 被添加到 MaterialAppbuilder 参数中,并且横幅显示在应用的右上角(BannerLocation.topEnd)。

  3. 自定义横幅内容

    你可以通过 text 参数来自定义横幅显示的文本内容。例如:

    VersionBanner(
      child: child!,
      location: BannerLocation.topEnd,
      text: 'v1.0.0 (Build 123)',
    );

    如果不提供 text 参数,插件会自动从 pubspec.yaml 文件中读取版本号。

  4. 其他选项

    • color: 设置横幅的背景颜色。
    • textStyle: 设置横幅文本的样式。
    • visible: 控制横幅是否可见。

    例如:

    VersionBanner(
      child: child!,
      location: BannerLocation.topEnd,
      color: Colors.red,
      textStyle: TextStyle(color: Colors.white, fontSize: 12),
      visible: true,
    );
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!