【问题标题】:Navigation From ErrorWidget to other Widget从 ErrorWidget 导航到其他 Widget
【发布时间】:2019-06-16 21:29:57
【问题描述】:

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

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

无论如何,我在 My ErrorWidget 中添加了一个 RaisedButton 以让用户在按下重试时导航到其他小部件:

我尝试使用 Navigator,但我认为 ErrorWidget 不像 MaterialApp 所以我得到一个错误上下文未定义:

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()));
                }),

          ),
        ],
      ),
  );
}

【问题讨论】:

  • 您的RaisedButton 看起来不错,可能问题出在您的context 上。你能在RaisedButton周围添加代码吗?
  • ErrorWidget.builder 不是为像 API 失败这样微不足道的事情而设计的,尤其不是在 build 中被覆盖。 ErrorWidget.builder 应用于 所有 小部件。 ErrorWidget.builder 用于严重错误,即您的应用程序出现严重错误的那种。永远不要有目的地使用它。

标签: flutter dart navigation


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多