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

SurfaceView与Android 8.0上的另一个SurfaceView重叠,android,surfaceview,android-8.0-oreo,android-8.1-oreo,Android,Surfaceview,Android 8.0 Oreo,Android 8.1 Oreo,我在安卓8.0上的应用程序遇到了一些奇怪的问题。我有自己的可滚动小部件,代码是。它有两个child,可以无限期地逐个滚动 在屏幕上,国际象棋棋盘是一个SurfaceView,一个可滚动的移动子棋盘也是一个SurfaceView。可滚动视图的另一个子视图是simple LinearLayout 问题是,当子曲面视图放置在棋盘下方时,它会显示在棋盘上方,而另一个子曲面视图会正常滚动。看下面的gif 这个问题出现在安卓8上。在所有以前的版本中,它都运行良好 您可以尝试将SurfaceView置于屏幕

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

在屏幕上,国际象棋棋盘是一个SurfaceView,一个可滚动的移动子棋盘也是一个SurfaceView。可滚动视图的另一个子视图是simple LinearLayout

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


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

您可以尝试将
SurfaceView
置于屏幕顶部:

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

更多来自


您可以尝试将
SurfaceView
置于屏幕顶部:

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

更多来自


你试过提供你的棋盘
SurfaceView
z-elevation吗?谢谢你的提示<棋盘上的code>setzordermediagoverlay(true)解决了这个问题。你可以发布你的悬赏回复。我将编辑带有其他详细信息的答案,以在将来帮助其他人。很高兴提供帮助:)您是否尝试提供您的棋盘
SurfaceView
z-elevation?谢谢您的提示<棋盘上的code>setzordermediagoverlay(true)解决了这个问题。你可以发布你的悬赏回复。我将编辑带有其他详细信息的答案,以在将来帮助其他人。乐意帮助:)