解决混合开发黑屏问题
- 将Android项目中嵌入Flutter工程的时候,在跳转的时候会黑屏,目前我也没有找到很好的方法,网上的方法也试了一下,目前也还没有比较好的效果,有道友留言说打release 也许不会黑屏这个我没试验,有兴趣的道友可以试试,下面来说说这种简单粗暴的方法这是在debug模式下操作的:
<style name="FlutterTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@drawable/task_bg</item>
</style>
<activity
android:name="com.readnewhome.FlutterIntegralCenterActivity"
android:screenOrientation="portrait"
android:theme="@style/FlutterTheme" >
</activity>
- 这是一种比较好的处理方法先隐藏显示,等待渲染好第一帧后才显示flutter页面
- 这里要注意一点要在布局中先把activity布局设置为InVisible状态,不要使用Gone用InVisible,渲染完成后再设置为Visible即可
private void initView()
{
final FlutterView flutterView =Flutter.createView(this , getLifecycle() ,"route1");
final FrameLayout layout = (FrameLayout) findViewById(R.id.flutter_container);
layout.addView(flutterView);
final FlutterView.FirstFrameListener[] listeners = new FlutterView.FirstFrameListener[1];
listeners[0] = new FlutterView.FirstFrameListener() {
@Override
public void onFirstFrame() {
layout.setVisibility(View.VISIBLE);
}
};
flutterView.addFirstFrameListener(listeners[0]);
}
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/flutter_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="invisible">
</FrameLayout>