Flutter版本展示插件version_banner的使用
Flutter版本展示插件version_banner的使用
Version Banner
一个可以显示当前应用程序版本的Banner小部件。可以与应用口味一起使用,以显示当前正在使用的应用口味。
使用步骤
此小部件应该包裹在MaterialApp
或CupertinoApp
周围。
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
- 检查应用程序的包名是否包含给定数组中的字符串部分。如果包名包含数组中的字符串,则显示Bannervisible
- 决定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), // 图标
),
);
}
}
更多关于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
来安装依赖。
基本用法
-
导入包:
在你的 Dart 文件中导入
version_banner
包:import 'package:version_banner/version_banner.dart';
-
在应用中添加版本横幅:
你可以在
MaterialApp
或CupertinoApp
的builder
参数中使用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
被添加到MaterialApp
的builder
参数中,并且横幅显示在应用的右上角(BannerLocation.topEnd
)。 -
自定义横幅内容:
你可以通过
text
参数来自定义横幅显示的文本内容。例如:VersionBanner( child: child!, location: BannerLocation.topEnd, text: 'v1.0.0 (Build 123)', );
如果不提供
text
参数,插件会自动从pubspec.yaml
文件中读取版本号。 -
其他选项:
color
: 设置横幅的背景颜色。textStyle
: 设置横幅文本的样式。visible
: 控制横幅是否可见。
例如:
VersionBanner( child: child!, location: BannerLocation.topEnd, color: Colors.red, textStyle: TextStyle(color: Colors.white, fontSize: 12), visible: true, );