我不知道为什么控制台框中会出现此错误
控制台消息:
SplashScreenState 通过它的 SingleTickerProviderStateMixin 创建了一个 Ticker,但是在 mixin 上调用 dispose() 时,该 Ticker 仍然处于活动状态。在调用 super.dispose() 之前必须处理 Ticker。AnimationControllers 使用的 Tickers 应该通过调用 AnimationController 本身的 dispose() 来处理。否则,代码会泄漏。违规代码是: Ticker(created by SplashScreenState#dae31(lifecycle state: created))
这是我的启动画面完整代码:
import 'dart:async';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class SplashScreen extends StatefulWidget {
@override
SplashScreenState createState() => new SplashScreenState();
}
class SplashScreenState extends State<SplashScreen>
with SingleTickerProviderStateMixin {
var _visible = true;
AnimationController animationController;
Animation<double> animation;
startTime() async {
var _duration = new Duration(seconds: 3);
return new Timer(_duration, navigationPage);
}
void navigationPage() {
Navigator.of(context).pushReplacementNamed(HOME_SCREEN); …Run Code Online (Sandbox Code Playgroud) 这是我的代码。我使用 SystemNavigator.pop 但它说undefined name SystemNavigator
我想要的只是使用 OnTap 退出应用程序
class AppDrawer extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: <Widget>[
_createHeader(),
_createDrawerItem(
icon: Icons.home,
text: 'Home',
onTap: () => Navigator.of(context).pop()),
Divider(),
_createDrawerItem
(icon: Icons.exit_to_app, text: 'Exit app',
onTap: () => SystemNavigator.pop),
),
],
),
);
}
Run Code Online (Sandbox Code Playgroud)
SystemNavigator.pop在这种情况下添加的正确方法是什么?如果您知道任何添加方法,请帮助我SystemNavigator.pop
这是我的 Flutter 医生总结:
Running flutter doctor...
Doctor summary (to see all details, run flutter doctor -v):
[?] Flutter (Channel master, v1.10.13-pre.12, on Microsoft Windows [Version 10.0.17134.1006], locale en-IN)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
X Android license status unknown.
Try re-installing or updating your Android SDK Manager.
See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for detailed instructions.
[?] Android Studio (version 3.5)
[?] Connected device (1 available)
! Doctor found issues in 1 category.
C:\Users\user>
Run Code Online (Sandbox Code Playgroud)
我尝试在 flutter webview 中使用 GestureRecognizer 来缩小双捏。但它不起作用。如果您有任何解决方案,请帮助我
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
void main()=>runApp(WebView());
class WebView extends StatefulWidget {
@override
_WebViewState createState() => _WebViewState();
}
class _WebViewState extends State<WebView> {
final Completer<WebViewController> _controller =
Completer<WebViewController>();
@override
Widget build(BuildContext context) {
return Scaffold(
body: Builder(builder: (BuildContext context) {
return WebView(
key: UniqueKey(),
gestureRecognizers:
Set()..add(Factory<TapGestureRecognizer>(() => TapGestureRecognizer(),)),//ZOOM WEBVIEW
initialUrl:
'/sf/',
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) {
_controller.complete(webViewController);
},
);
}),
);
}
}
Run Code Online (Sandbox Code Playgroud)
这是代码的重要部分如果您需要完整的代码,请发表评论。