[英]How to skip the splash screen when use flutter_native_splash while user is logged In
我正在為我的應用程序使用 Flutter。 當我啟動應用程序時,首先出現白屏,然后應用程序啟動。 所以我使用了flutter_native_splash來克服白屏的問題。
但是應用程序的流程第一次可以正常工作,如下所述:
但是當用戶使用 email 登錄時,輸入密碼然后關閉應用程序(無需注銷)。 在那之后我想要,當用戶再次打開應用程序時,主頁應該會直接出現。
但是在我的應用程序中,當用戶再次打開應用程序時,會出現第一個初始屏幕,然后重定向到主頁。 所以在這種情況下,所有的東西都在工作,但是為什么每次用戶打開應用程序時都會出現閃屏?
我只想在用戶第一次打開應用程序時出現啟動畫面,或者當用戶通過注銷關閉應用程序時,啟動畫面應該出現,否則啟動畫面應該跳過並且用戶直接重定向到主頁。 當我們使用flutter_native_splash package時如何跳過啟動畫面?
我在pubspec.yaml
中的啟動畫面代碼如下:
flutter_native_splash:
color: "#000000"
image: assets/images/LOGO.png
android: true
ios: true
android_width: fill
ios_content_mode: scaleAspectFill
我的main.dart
文件:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
SharedPreferences prefs = await SharedPreferences.getInstance();
var email = prefs.getString('email');
print(email);
runApp(MaterialApp(
debugShowCheckedModeBanner: false,
home: email == null ? MMSApp() : HomePage(),
routes: {
LoginPage.id: (context) => LoginPage(),
SignupPage.id: (context) => SignupPage(),
HomePage.id: (context) => HomePage()
},
darkTheme: ThemeData(brightness: Brightness.dark),
themeMode: ThemeMode.dark,
));
}
class MMSApp extends StatefulWidget {
@override
_MMSAppState createState() => _MMSAppState();
}
class _MMSAppState extends State<MMSApp> {
@override
void initState() {
super.initState();
//navigateUser();
}
Future navigateUser() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
var status = prefs.getBool('isLoggedIn') ?? false;
print(status);
if (status) {
Navigator.pushReplacement(
context, MaterialPageRoute(builder: (context) => HomePage()));
} else {
Navigator.pushReplacement(
context, MaterialPageRoute(builder: (context) => LoginPage()));
}
}
@override
Widget build(BuildContext context) {
return FutureBuilder(
builder: (context, index){
return Scaffold(
body: Center(
child: Text("Welcome", style: TextStyle(fontSize: 25.0, fontWeight: FontWeight.bold,color: Colors.white),),
),
);
},
future: navigateUser(),
);
}
}
無法跳過由 flutter_native_splash package 設置的啟動畫面。 此初始屏幕在 Flutter 加載應用程序時顯示,並在第一個 Flutter 幀准備好時被刪除。 所有 Flutter 應用程序都有這個初始屏幕。 默認情況下,它是白色的,flutter_native_splash package 允許您對其進行配置,但不能將其刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.