Flutter 有一个问题改变屏幕在颤振
我在更改屏幕时遇到问题。我不知道为什么navigautr.push命令不起作用。 除此之外的一切都很好,比如长距离、alt等。。 除此之外的一切都很好,比如长距离、alt等 实用程序类别: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
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)