原因:
SurfaceView因为不同于一般的view,它有自己良好的缓冲以及数据存取机制,系统对他有特殊处理。当surfaceview第一次在当前activity上添加的时候,系统会给WindowManager重新排布局,relayout,这样就会黑一下,这个只会出现在第一次,以后再添加surfaceview时就不会黑屏了
在布局文件中加入一个看不见的surfaceview,就可以解决问题了
<TextureView
android:id="@+id/tv"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<SurfaceView
android:layout_width="0dp"
android:layout_height="0dp" />