如何解决某些图像上的抖动 "Infinity or NaN toInt"
How to solve flutter "Infinity or NaN toInt" on some images
我有一个应该只显示图像的简单项目。我应该提一下,这是 flutter 的新手。
下面是main.dart
import 'package:flutter/material.dart';
import 'package:flutter_shoe/ColorHolder.dart';
import 'package:flutter_shoe/home_page.dart';
import 'package:flutter_shoe/profile_page.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primaryColor: primaryColor,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: HomePage(),
);
}
}
这里是 HomepageClass
import 'package:flutter/material.dart';
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: Icon(Icons.menu),
title: Text("Home"),
centerTitle: true,
actions: [
Icon(Icons.circle_notifications),
],
),
body: Container(
child: Image.asset(
"assets/imgs/curved.png",
// "assets/imgs/doc.jpg",
width: 500,
height: 200,
),
),
);
}
}
上面的代码给我错误
Unsupported operation: Infinity or NaN toInt
错误指向包含图像资源的行。
我试过使用几个不同的图像,它对一些图像效果很好,但对其他图像却出错。我需要它始终处理所有图像。
示例工作图像的尺寸为 626 x 626,为 jpg
示例非工作图像的尺寸为 1080 x 768,为 png
我试过用 Expandable 替换 container。
我已将高度和宽度值附加到容器。还是行不通
我已将图像的宽度和高度更改为 double.maxFinite。不工作。
我在他们的文档中找不到任何有用的东西。
有人帮我知道我哪里错了。
您是否将资产放入 pubspec.yaml 文件?
flutter:
assets:
- assets/imgs/
我无法重现您的错误,建议您尝试以下代码:
body: SingleChildScrollView(
child: Container(
child: Image.asset("assets/imgs/curved.png",
fit: BoxFit.cover,
width: 500,
height: 200,
),
),
),
是否使用 Image.network 也会给您一个错误。请检查下图是否报错:
Image.network("https://placeimg.com/1080/768/any",
width: 500, height: 200)
我解决了。原来我不应该在添加新资产后使用 hot-reload 。我所需要的只是停止该项目并 re-run 重新开始。
我有一个应该只显示图像的简单项目。我应该提一下,这是 flutter 的新手。
下面是main.dart
import 'package:flutter/material.dart';
import 'package:flutter_shoe/ColorHolder.dart';
import 'package:flutter_shoe/home_page.dart';
import 'package:flutter_shoe/profile_page.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primaryColor: primaryColor,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: HomePage(),
);
}
}
这里是 HomepageClass
import 'package:flutter/material.dart';
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: Icon(Icons.menu),
title: Text("Home"),
centerTitle: true,
actions: [
Icon(Icons.circle_notifications),
],
),
body: Container(
child: Image.asset(
"assets/imgs/curved.png",
// "assets/imgs/doc.jpg",
width: 500,
height: 200,
),
),
);
}
}
上面的代码给我错误
Unsupported operation: Infinity or NaN toInt
错误指向包含图像资源的行。
我试过使用几个不同的图像,它对一些图像效果很好,但对其他图像却出错。我需要它始终处理所有图像。
示例工作图像的尺寸为 626 x 626,为 jpg 示例非工作图像的尺寸为 1080 x 768,为 png
我试过用 Expandable 替换 container。 我已将高度和宽度值附加到容器。还是行不通 我已将图像的宽度和高度更改为 double.maxFinite。不工作。
我在他们的文档中找不到任何有用的东西。
有人帮我知道我哪里错了。
您是否将资产放入 pubspec.yaml 文件?
flutter:
assets:
- assets/imgs/
我无法重现您的错误,建议您尝试以下代码:
body: SingleChildScrollView(
child: Container(
child: Image.asset("assets/imgs/curved.png",
fit: BoxFit.cover,
width: 500,
height: 200,
),
),
),
是否使用 Image.network 也会给您一个错误。请检查下图是否报错:
Image.network("https://placeimg.com/1080/768/any",
width: 500, height: 200)
我解决了。原来我不应该在添加新资产后使用 hot-reload 。我所需要的只是停止该项目并 re-run 重新开始。