SurfaceView相互叠加的坑
SurfaceView相互叠加的坑
我们知道可以通过如下代码设置SurfaceView的层级
surfaceView.setZOrderOnTop(isOnTop)
surfaceView.setZOrderMediaOverlay(isOnTop)
但是在实际使用过程中经常发现没有效果,通过查看官方文档得知,要使这两句代码生效必须在surfaceView的window attach windowManger之前设置才会生效。
所以当你需要更换两个已经显示在屏幕的surfaceview的层级,可以通过如下方式,
第一步:从布局中得到surfaceView
第二步:先移除掉surfaceView
第三步:设置层级
第四步:再重新添加到布局中去
surfaceView = viewGroup.getChildAt(0)
viewGrouP?.removeAllViews()
surfaceView?.setZOrderOnTop(isOnTop)
surfaceView?.setZOrderMediaOverlay(isOnTop)
viewGroup.addView(surfaceView)