我已经为我的应用程序设置了一个自定义ErrorWidget:
@override
Widget build(BuildContext context) {
ErrorWidget.builder = getErrorWidget;
return TabsView();
}
无论如何,我在My ErrorWidget中添加了一个RaisedButton
,以使用户在按下Retry时可以导航到其他窗口小部件:
我尝试使用Navigator,但是我认为ErrorWidget与MaterialApp不一样,所以我得到一个Error上下文未定义:
import 'package:flutter/material.dart';
import 'package:awesome_loader/awesome_loader.dart';
import 'package:carousel_slider/carousel_slider.dart';
import 'MyLocationView.dart';
List _tips = [
('Searching...'),
('Tips :Turn On Wifi'),
('Tips :Turn On GPS'),
];
int i = 0;
Widget getErrorWidget(FlutterErrorDetails error) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
AwesomeLoader(
loaderType: AwesomeLoader.AwesomeLoader3,
color: Colors.teal,
),
Center(
child: CarouselSlider(
height: 60.0,
viewportFraction: 1.0,
enlargeCenterPage: true,
autoPlay: true,
autoPlayInterval: Duration( seconds: 3 ),
autoPlayAnimationDuration: Duration( milliseconds: 800 ),
items: _tips.map( (i) {
return Builder(
builder: (BuildContext context) {
return Container(
width: 140.0,
child: Text(
' $i ',
style: TextStyle( fontSize: 16.0 ),
) );
},
);
} ).toList( ),
),
),
Center(
child :RaisedButton(
child: Text("Retry"),
onPressed: (){
//Here my button
Navigator.push(context, MaterialPageRoute(builder: (context)=>MyLocationView()));
}),
),
],
),
);
}
答案 0 :(得分:1)
ErrorWidget专门用于严重错误,而不用于其他用途。