仅在安装后加载的说明页面
Posted
技术标签:
【中文标题】仅在安装后加载的说明页面【英文标题】:Instruction page that only loads after installation 【发布时间】:2020-07-01 22:25:47 【问题描述】:我的应用中有一个页面,其中包含一些关于如何使用该应用的图标和动画。 我想在安装后第一次启动时加载此页面,然后我希望应用程序的任何其他启动直接进入主页。 如何做到这一点? 我已经看到了一些将这个问题与启动画面混淆的线程,我只希望这个页面在安装后启动一次,然后再也不启动。 谢谢
【问题讨论】:
【参考方案1】:您必须创建启动屏幕并在此页面中检查共享首选项,该首选项告诉您是否已显示介绍页面 如果您显示该页面,您可以导航到主页,否则导航到介绍页面 在介绍页面中显示您想要显示的任何内容,并在介绍结束时设置 isIntroShowed 或共享首选项为 true 如下代码
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget
@override
Widget build(BuildContext context)
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: SplashScreen(),
);
class SplashScreen extends StatefulWidget
SplashScreen(Key key) : super(key: key);
@override
_SplashScreenState createState() => _SplashScreenState();
class _SplashScreenState extends State<SplashScreen>
@override
void initState()
SharedPreferences.getInstance().then((prefs)
var isShowed =prefs.getBool("isIntroShowed");
if(isShowed!=null && isShowed)
//navigate to main page
else
//navigate to intro page
);
super.initState();
@override
Widget build(BuildContext context)
return Scaffold(
body: Center(child: CircularProgressIndicator(),),
);
class IntroPage extends StatelessWidget
const IntroPage(Key key) : super(key: key);
@override
Widget build(BuildContext context)
return Scaffold(
body: Center(
child:FlatButton(child: Text('intro done'),onPressed: ()async
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setBool('isIntroShowed', true);
// navigate to main content
,)
),
);
【讨论】:
只有一件事,它在我的菜单栏中创建了一个后退按钮,以便在下次运行时返回到这个加载屏幕,而 android 上的后退按钮也将它带回这个屏幕。有什么办法可以解决这个问题? 没关系,使用此链接:***.com/questions/45916658/…。再次感谢您的帮助 哦,我错过了,您可以使用 Fluatter navigator 的 pushAndRemoveUntil 方法进行导航以上是关于仅在安装后加载的说明页面的主要内容,如果未能解决你的问题,请参考以下文章