SurfaceView相互叠加的坑

我的梦境 提交于 2020-01-12 07:25:35

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)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!