从ErrorWidget导航到其他Widget

时间:2019-06-16 21:29:57

标签: flutter dart navigation

我已经为我的应用程序设置了一个自定义ErrorWidget:

@override
Widget build(BuildContext context) {
    ErrorWidget.builder = getErrorWidget;
    return TabsView();
} 

无论如何,我在My ErrorWidget中添加了一个RaisedButton,以使用户在按下Retry时可以导航到其他窗口小部件:

enter image description here

我尝试使用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()));
                }),

          ),
        ],
      ),
  );
}

1 个答案:

答案 0 :(得分:1)

ErrorWidget专门用于严重错误,而不用于其他用途。

相关问题