百度下来解决的都是FlutterActivity黑屏的解决方法,并不适用于FlutterFragment,区别在于FlutterActivity实现了SplashScreenProvider接口。
FlutterFragment源码贴上
@Nullable public SplashScreen provideSplashScreen() { FragmentActivity parentActivity = this.getActivity(); if (parentActivity instanceof SplashScreenProvider) { SplashScreenProvider splashScreenProvider = (SplashScreenProvider)parentActivity; return splashScreenProvider.provideSplashScreen(); } else { return null; } }
注意!这个时候所fragment所绑定的activity并没有实现SplashScreenProvider接口,所以不会调用
provideSplashScreen()函数。
所以,解决方案:
Activity 实现 SplashScreenProvider 接口重写 provideSplashScreen()函数
@Override
public SplashScreen provideSplashScreen() {
return new DrawableSplashScreen(new ColorDrawable(Color.parseColor("#ffffff")));
}