Flutter 如何使用不同的资产实现颤振风格?
我已经创建了一个颤振应用程序,我想在上面设置3种口味。它们中的每一个都有不同的字体、不同的图像集和不同的字符串文件集。 如何使用特定的字体、图像和字符串文件来实现特定的风格?Flutter 如何使用不同的资产实现颤振风格?,flutter,dart,Flutter,Dart,我已经创建了一个颤振应用程序,我想在上面设置3种口味。它们中的每一个都有不同的字体、不同的图像集和不同的字符串文件集。 如何使用特定的字体、图像和字符串文件来实现特定的风格? 提前谢谢 您可以创建应用程序配置文件 import 'package:flutter/material.dart'; enum Flavor { FLAV1, FLAV2 } class AppConfig extends InheritedWidget { final String appTitle; fin
提前谢谢 您可以创建应用程序配置文件
import 'package:flutter/material.dart';
enum Flavor { FLAV1, FLAV2 }
class AppConfig extends InheritedWidget {
final String appTitle;
final String buildFlavor;
final Flavor flavor;
final Widget child;
final ThemeData themeData;
final String s3BucketURL;
final String stripeKey;
AppConfig(
{@required this.appTitle,
@required this.buildFlavor,
@required this.themeData,
@required this.flavor,
@required this.s3BucketURL,
@required this.stripeKey,
@required this.child});
@override
bool updateShouldNotify(covariant InheritedWidget oldWidget) => false;
static AppConfig of(BuildContext context) {
return context.dependOnInheritedWidgetOfExactType();
}
}
创建文件夹
资产/
资产/1/
资产/2/
添加到pubspec.yaml
在访问这些资源时,您可以使用flavors的索引来获取资源
SvgPicture.asset(
'assets/${AppConfig.of(context).flavor.inex}/splash_logo.svg',
colorBlendMode: BlendMode.srcIn,
color: Theme.of(context).primaryColor,
)
您可以在初始化时添加不同的应用程序配置文件。创建不同的主文件,如main_flav1.dart、main_flav2.dev
void main() async {
WidgetsFlutterBinding.ensureInitialized();
var configureApp = AppConfig(
appTitle: 'App staging',
buildFlavor: 'Staging',
flavor: Flavor.FLAV1,
themeData: PreOrderTheme.flav1Theme,
stripeKey: 'pk_s',
s3BucketURL: 'https://sssss.net',
child: PreOrderApp(repository: Repository(baseURL:"https://webapi.net/api")),
);
return runApp(configureApp);
}
请参考。为我工作!!!!谢谢:)