Flutter 删除默认启动屏幕android&;ios颤振

Flutter 删除默认启动屏幕android&;ios颤振,flutter,Flutter,我更喜欢使用自定义的启动屏幕,这样可以让我构建整个页面。所以,我试图从android和ios中删除默认的splash void main() async { flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin(); SystemChrome.setPreferredOrientations( [DeviceOrientation.portraitUp, DeviceOrientation.port

我更喜欢使用自定义的启动屏幕,这样可以让我构建整个页面。所以,我试图从android和ios中删除默认的splash

void main() async {
  flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
  SystemChrome.setPreferredOrientations(
      [DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]);

  runApp(MaterialApp(
    title: 'Navigation Basics',
    debugShowCheckedModeBanner: false,
    home: new SplashPage(),
    routes: {
      // When navigating to the "/" route, build the FirstScreen widget.
      '/home': (BuildContext context) => new FirstRoute(),
    },
  ));
}

class SplashPage extends StatefulWidget {
  @override
  SplashPageState createState() => SplashPageState();
}

class SplashPageState extends State<SplashPage> {

  void navigationToNextPage() {
    Navigator.pushNamed(context, '/home');
  }

  startSplashScreenTimer() async {
    var _duration = new Duration(seconds: 5);
    return new Timer(_duration, navigationToNextPage);
  }

  @override
  void initState() {
    super.initState();
    startSplashScreenTimer();
  }

  @override
  Widget build(BuildContext context) {

    SystemChrome.setEnabledSystemUIOverlays([]);

    return Container(
        child: new Image.asset('images/banner.png', fit: BoxFit.fill));
  }
}
void main()异步{
FlatterLocalNotificationsPlugin=FlatterLocalNotificationsPlugin();
SystemChrome.setPreferredOrientations(
[设备定向。肖像向上,设备定向。肖像向下];
runApp(材料应用程序)(
标题:“导航基础”,
debugShowCheckedModeBanner:false,
主页:新建SplashPage(),
路线:{
//当导航到“/”路径时,构建FirstScreen小部件。
“/home”:(BuildContext上下文)=>new FirstRoute(),
},
));
}
类SplashPage扩展StatefulWidget{
@凌驾
SplashPageState createState()=>SplashPageState();
}
类PageState扩展了状态{
void navigationToNextPage(){
Navigator.pushNamed(上下文“/home”);
}
startSplashScreenTimer()异步{
var_持续时间=新的持续时间(秒:5);
返回新计时器(_持续时间,导航到下一页);
}
@凌驾
void initState(){
super.initState();
startSplashScreenTimer();
}
@凌驾
小部件构建(构建上下文){
SystemChrome.SetEnabledSystemEmioVerlays([]);
返回容器(
子级:newimage.asset('images/banner.png',fit:BoxFit.fill));
}
}

因此,我需要使用颤振从这两个系统中删除默认的启动画面

仅使用飞镖/颤振无法覆盖默认的启动画面。它们是本机Android/iOS上下文在颤振运行时初始化时显示的控件。因此,您在flatter中创建的任何启动屏幕小部件都将显示在默认启动屏幕之后。(即使你完全删除了默认的启动图像,应用程序也只是一个空白的while屏幕,直到flatter加载完毕,这是一个糟糕的设计。)


有关于如何更改默认启动屏幕的说明。如果你精通本机Android或iOS开发,如果你愿意,你可以更进一步,而不仅仅是一张简单的图片。

你可以通过忽略添加启动器图标来实现

在android中,进入app->main->res->drawable->launch_background.xml并保持如下状态:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white" />    
    <!-- <item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/ic_launcher" />
    </item> -->
</layer-list>


谢谢,那么如何为ios和Windows添加100%固定高度和宽度的图像android@MikelTawfik我想不起来了,但是启动屏幕是一个非常简单的Android控件和iOS脚本,所以通过谷歌应该很容易找到。这就是说,我不建议让你的闪屏100%地填满屏幕,因为手机屏幕有各种形状和大小,所以在一部手机上看起来很好的图像在另一部手机上看起来会拉伸和扭曲。