SurfaceView 与 Android 8.0 上的另一个 SurfaceView 重叠

Art*_*aev 1 android surfaceview android-8.0-oreo android-8.1-oreo

我在 Android 8.0 上的应用程序遇到了一些奇怪的问题。我有自己的可滚动小部件,代码在 github可用。它有两个孩子,可以无限期地一一滚动。

在屏幕上,棋盘是一个SurfaceView,上面有棋子的可滚动移动子也是一个SurfaceView。可滚动视图的另一个子元素是简单的 LinearLayout。

问题是当子 SurfaceView 放置在棋盘下方时,它显示在其上方,而另一个子则正常滚动。看看下面的gif。

在此处输入图片说明

这个问题出现在 Android 8 上。在所有以前的版本上它都运行良好。

Jee*_*ede 6

你可以试试这个来制作SurfaceView屏幕顶部:

surfaceView.setZOrderMediaOverlay(true);
Run Code Online (Sandbox Code Playgroud)

主要提示是不要使用setZOrderOnTop(true),因为它显示SurfaceView在任何 UI 元素上方。setZOrderMediaOverlay在 UI 下方显示 SurfaceView,但在另一个 SurfaceView 上方。

更多来自这里