Flutter 有一个问题改变屏幕在颤振

Flutter 有一个问题改变屏幕在颤振,flutter,Flutter,我在更改屏幕时遇到问题。我不知道为什么navigautr.push命令不起作用。 除此之外的一切都很好,比如长距离、alt等。。 除此之外的一切都很好,比如长距离、alt等 实用程序类别: import 'package:flutter/material.dart'; import 'package:clima/screens/loading_screen.dart'; void main() => runApp(MyApp()); class MyApp extends Stateles

我在更改屏幕时遇到问题。我不知道为什么navigautr.push命令不起作用。 除此之外的一切都很好,比如长距离、alt等。。 除此之外的一切都很好,比如长距离、alt等

实用程序类别:

import 'package:flutter/material.dart';
import 'package:clima/screens/loading_screen.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark(),
      home: LoadingScreen(),
    );
  }
}
加载屏幕类:

import 'package:clima/screens/location_screen.dart';
import 'package:clima/services/networking.dart';
import 'package:flutter/material.dart';
import 'package:clima/services/location.dart';
import 'location_screen.dart';

const apiKey = '65c8f19a8cd46bb90e565af0a07cbd61';

class LoadingScreen extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _LoadingScreenState();
  }
}

class _LoadingScreenState extends State<LoadingScreen> {
  double latitude;
  double longitude;

  @override
  void iniState() {
    super.initState();
    getLocationData();
  }

  void getLocationData() async {
    Location location = new Location();
    await location.getCurrentLocation();

    latitude = location.latitude;
    longitude = location.longitude;
    print('got here');
    NetworkHelper networkHelper = NetworkHelper(
        'https://samples.openweathermap.org/data/2.5/weather?lat=$latitude&$longitude=139&appid=$apiKey');
    var weatherData = await networkHelper.getData();

    Navigator.push(context, MaterialPageRoute(builder: (context) {
      return LocationScreen();
    }));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold();
  }
}

您收到错误的原因:

信息:方法不重写继承的方法。(在[clima]lib\screens\loading\u screen.dart:21处覆盖\u on\u非\u覆盖\u方法)


您创建了一个iniState()函数,而不是initState()函数。

更好的方法是将LocationScreen作为主主屏幕,并在LocationScreen的initState方法中调用getLocationData方法,只需使用setState设置一个标志,确定构建方法是返回CircularProgressIndicator小部件还是返回已加载的数据。否则,当用户点击“返回”时,默认情况下,他们将返回到加载屏幕,这可能不是您想要的。好的,但无论如何,我想了解它为什么不工作。它怎么不工作?location screen类看起来像什么?如果你想要一个具体的答案,你需要提供更多的细节。@Kris刚刚在编辑时做了,把
print('got here')
放在
wait networkHelper.getData()之后
Launching lib\main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...
Built build\app\outputs\apk\debug\app-debug.apk.
Installing build\app\outputs\apk\app.apk...
Syncing files to device Android SDK built for x86...
D/EGL_emulation(11532): eglMakeCurrent: 0x9e4051e0: ver 2 0 (tinfo 0x9e403400)

info: Method doesn't override an inherited method. (override_on_non_overriding_method at [clima] lib\screens\loading_screen.dart:21)
info: The value of the local variable 'weatherData' isn't used. (unused_local_variable at [clima] lib\screens\loading_screen.dart:36)
info: Avoid empty statements. (empty_statements at [clima] lib\services\networking.dart:16)
info: Dead code. (dead_code at [clima] lib\services\networking.dart:16)