多听、多看、少说。

                                                                                                                                                                     ---- 泰语心说

 

当用我们用Android和Flutter愉快的进行混合开发时,按照以下方法,可以将FlutterView加载到Android中:

private FrameLayout flutterContainer;private FlutterView flutterView;...flutterContainer = findViewById(R.id.flutter_about_container);...flutterView = Flutter.createView(this, getLifecycle(), "About");FrameLayout.LayoutParams layout = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);flutterContainer.addView(flutterView, layout);
            

但是会出现黑屏问题,而且黑屏的效果和手机有关,手机不一样,黑屏时间也不一样。

小编在网上找了很多方法,都无效,最后发现了一个方法,可以缓解这个痛点,但是不能彻底解决。

具体方法如下:

        flutterView = Flutter.createView(this, getLifecycle(), "About");        FrameLayout.LayoutParams layout = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);        final FlutterView.FirstFrameListener[] listeners = new FlutterView.FirstFrameListener[1];        listeners[0] = new FlutterView.FirstFrameListener() {            @Override            public void onFirstFrame() {                flutterContainer.setVisibility(View.VISIBLE);            }        };        flutterView.addFirstFrameListener(listeners[0]);        flutterContainer.addView(flutterView, layout);

原理就是,先让界面隐藏,等第一帧绘制完成后,再让他显示出来。 

 

更多相关文章

  1. Android百度地图一种简单实现多标注及响应时间的方法
  2. Xposed: 勾住(Hook) Android应用程序对象的方法,实现AOP
  3. (Android) Eclipse "launching delegate" 停在 27%的解决方法
  4. android AsyncTask 使用方法
  5. android的Timer方法
  6. android 返回桌面的方法
  7. Android内存缓存图片的标准方法
  8. Android应用前后台监听最简单的方法
  9. Android退出多个Activity的两个经典方法

随机推荐

  1. Android:Loading 动画——竜人の剣を喰え
  2. android 判断横竖屏
  3. Android开发易错点总结
  4. 四极管:Android开机logo制作
  5. Android横竖屏切换相关总结
  6. Android上在两个Activity之间传递Bitmap
  7. [置顶] Android 调用js,传对象到js里面使
  8. Android之MessageQueue、Looper、Handler
  9. Android Studio 使用Gradle引入第三方库
  10. Android(安卓)访问 .net C#写的webservic