如何更有效地使用 RunApp 功能来更改页面
Posted
技术标签:
【中文标题】如何更有效地使用 RunApp 功能来更改页面【英文标题】:How to use RunApp function more efficiently for changing Pages 【发布时间】:2019-09-28 22:02:44 【问题描述】:我正在创建一个登陆屏幕加载五秒钟的 android 应用程序。我正在使用 RunApp 函数调用登陆页面,登陆页面将在五秒后调用主页应用程序。这是完成此类工作的有效方式吗?
我尝试使用导航功能,但是当我按下返回按钮时,它返回到登录页面。
这个是用来叫我登陆的家
import './pages/landing.dart';
void main()
runApp(LandingHome(),
);
在 Landing.dart 上
import 'package:neptools/pages/homepage.dart';
class LandingHome extends StatefulWidget
@override
_LandingHomeState createState() => _LandingHomeState();
class _LandingHomeState extends State<LandingHome>
@override
void initState()
super.initState();
Timer(Duration(seconds:5),() => runApp(HomePage()), );
Rest 是 Landing Home 的 UI 元素
@override
Widget build(BuildContext context)
return MaterialApp(
home: Scaffold(
//Other UI Elements
一切正常。我想知道这种方法的效率如何。我认为这会消耗更多内存,因为应用程序登陆Home 可能会在后台运行
【问题讨论】:
【参考方案1】:我认为最好创建命名路由,而不是再次调用你的根函数。
5 秒延迟后,您可以推送到特定的命名路线。
这使您的根函数只执行一次并且不易出错
Named Routes Documentation
您可以使用包让您的生活更轻松创建命名路线 Compassion
还有你为什么要这么做?您的应用程序还有一个启动画面,它会一直显示,直到所需的资源加载到内存中,它的速度取决于硬件。在低端设备中,假设启动应用程序后用户等待 3 秒 + 5 秒 = 8 秒。我不认为这是个好主意。你应该尽量避免它。
【讨论】:
以上是关于如何更有效地使用 RunApp 功能来更改页面的主要内容,如果未能解决你的问题,请参考以下文章
如何使用故事板、initWithCoder、viewDidLoad 和 viewDidLayoutSubviews 有效地管理屏幕尺寸更改和重绘?