File tree Expand file tree Collapse file tree 1 file changed +39
-10
lines changed Expand file tree Collapse file tree 1 file changed +39
-10
lines changed Original file line number Diff line number Diff line change 1
1
import 'package:flutter/material.dart' ;
2
2
import 'package:flutter_dojo/common/main_title_widget.dart' ;
3
+ import 'package:flutter_dojo/common/multi_selection_widget.dart' ;
3
4
4
5
class CatchErrorWidget extends StatefulWidget {
5
6
@override
6
7
_CatchErrorWidgetState createState () => _CatchErrorWidgetState ();
7
8
}
8
9
9
10
class _CatchErrorWidgetState extends State <CatchErrorWidget > {
11
+ String url = '' ;
12
+ String msg = '' ;
13
+
10
14
@override
11
15
Widget build (BuildContext context) {
12
- return Column (
13
- children: < Widget > [
14
- MainTitleWidget ('Catch error' ),
15
- RaisedButton (
16
- onPressed: () {
17
- throw Exception ();
18
- },
19
- child: Text ('Throw exception' ),
20
- )
21
- ],
16
+ return SingleChildScrollView (
17
+ child: Column (
18
+ children: < Widget > [
19
+ MainTitleWidget ('Catch Image Error' ),
20
+ MultiSelectionWidget (
21
+ 'Image Url' ,
22
+ [
23
+ 'https://img.favpng.com/25/9/1/dart-google-developers-flutter-android-png-favpng-vi7iwNmVaBCVr91EF35XrnFfc.jpg' ,
24
+ 'xuyisheng' ,
25
+ 'https://www.baidu.com' ,
26
+ ],
27
+ [
28
+ '正确URL' ,
29
+ '错误URL' ,
30
+ '非图片URL' ,
31
+ ],
32
+ (value) {
33
+ setState (() => url = value);
34
+ },
35
+ ),
36
+ safeImageWidget (url),
37
+ Text (msg),
38
+ ],
39
+ ),
22
40
);
23
41
}
42
+
43
+ safeImageWidget (String url) {
44
+ Image image = Image .network (url);
45
+ final ImageStream stream = image.image.resolve (ImageConfiguration .empty);
46
+ stream.addListener (ImageStreamListener ((_, __) {
47
+ msg = '' ;
48
+ }, onError: (e, trace) {
49
+ msg = '$e -$trace ' ;
50
+ }));
51
+ return image;
52
+ }
24
53
}
You can’t perform that action at this time.
0 commit comments