问题 我正在尝试在颤动屏幕的应用栏中添加注销图像图标。我创建了一个资产文件夹,并创建了目录images / icons /,并在其中放置了图标。 我在pubspec.yaml文件中提到了它们。 我试图在appbar中实现资产图片,但无法正常工作。
代码
pubspe.yaml
name: mtrack_notifications
description: Flutter application for MTrack Notifications
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.2
http: ^0.11.3+16
shared_preferences: "^0.4.2"
dev_dependencies:
flutter_test:
sdk: flutter
# For information on the generic Dart part of this file, see the
# following page: https://www.dartlang.org/tools/pub/pubspec
# The following section is specific to Flutter.
flutter:
# The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in
# the material Icons class.
uses-material-design: true
# To add assets to your application, add an assets section, like this:
# assets:
# - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg
assets:
- assets/images/icons/like.png
- assets/images/icons/logout.png
# An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.io/assets-and-images/#resolution-aware.
# For details regarding adding assets from package dependencies, see
# https://flutter.io/assets-and-images/#from-packages
# To add custom fonts to your application, add a fonts section here,
# in this "flutter" section. Each entry in this list should have a
# "family" key with the font family name, and a "fonts" key with a
# list giving the asset and other descriptors for the font. For
# example:
# fonts:
# - family: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#
# For details regarding fonts from package dependencies,
# see https://flutter.io/custom-fonts/#from-packages
Click to see the IDE screenshot here
应用程序条形码
@override
Widget build(BuildContext context) {
//build a form widget using the form key we created above
return new Scaffold(
appBar: new AppBar(
title: new Text(StringRef.appName),
actions: [
new Center(
child:new Text(
userName,
textScaleFactor: 1.5,
style: new TextStyle(
fontSize: 12.0,
color: Colors.white,
),
)),
new IconButton(
icon: new Icon(Icons.close),
tooltip: 'Closes application',
onPressed: () => exit(0),
),
new IconButton(
icon: new Image.asset('images/icons/logout.png'),
tooltip: 'Closes application',
onPressed: () => exit(0),
),
],
),
答案 0 :(得分:8)
问题出在您提供给IconButton的路径上。
应该是这样。
new IconButton(
icon: new Image.asset('assets/images/icons/logout.png'),
tooltip: 'Closes application',
onPressed: () => exit(0),
)
答案 1 :(得分:2)
下面是Flutter中带有图标
的 AppBar 的示例代码Widget build(BuildContext context) {
return new Scaffold(
appBar: AppBar(
title: new Text('App Name'),
actions: [
// action button
IconButton(
icon: Image.asset('assets/images/icons/logout.png'),
onPressed: () { },
),
],
),
);
}
别忘了像这样在asset
中为移动应用徽标添加pubspec.yaml
,并在资产目录中添加名为logo.png的图像。
flutter:
assets:
- assets/images/icons/logout.png
注意:assets
部分的flutter
子部分指定应包含在应用程序中的文件。每个资产由资产文件所在的显式路径(相对于pubspec.yaml
文件)标识。资产的宣布顺序无关紧要。所使用的实际目录名称(第一个示例中的assets
或上一个示例中的directory
)无关紧要。
在构建期间,Flutter将资产放入一个称为资产束的特殊档案中,应用程序在运行时从中读取。
答案 2 :(得分:0)
根据Flutter Documentation,您需要包含资产pubspec.yaml
中指定的完整路径才能加载:
Image.asset('assets/images/icons/logout.png')
答案 3 :(得分:0)
如果将图像放在文件夹文件夹中,请勿尝试在pubspec.yaml
中注册所有图像,然后应注册所有文件夹。像这样
您将图像:hero.png放在文件夹Assets内的Images中。 资产>图片> hero.png
然后您应该将它们写在“ pubspec.yaml”下: '扑: 资产: -Assets / Images / hero.png'
答案 4 :(得分:0)
对于图像位置,您应该给“-”提供3个空格,并给“-”赋予1个空格 规范。
颤动:
#以下代码行确保“材质图标”字体为
#随应用程序一起提供,以便您可以使用其中的图标
#材质的Icons类。
uses-material-design:true
资产:
- assets/images/icons/like.png
- assets/images/icons/logout.png