Java GridLayout SurfaceView子项在更改其可见性时相互重叠

Java GridLayout SurfaceView子项在更改其可见性时相互重叠,java,android,surfaceview,grid-layout,android-gridlayout,Java,Android,Surfaceview,Grid Layout,Android Gridlayout,我有一个名为ScreensaActivity的活动,该活动包含一个GridLayout 每个GridLayout子项都是一个名为ScreenView的自定义视图 ScreenView由一个SurfaceView组成,用于播放.MP4文件中的视频 这是上述组件的视图层次结构: ScreensActivity GridLayout ScreenView ScreenView ScreenView ScreenView

我有一个名为
ScreensaActivity
的活动,该活动包含一个
GridLayout

每个
GridLayout
子项都是一个名为
ScreenView
的自定义
视图

ScreenView
由一个
SurfaceView
组成,用于播放.MP4文件中的视频

这是上述组件的视图层次结构:

ScreensActivity
    GridLayout
        ScreenView
        ScreenView
        ScreenView
        ScreenView
        ...
预期行为

我想做的是添加对将
GridLayout
ScreenView
的“状态”更改为“全屏”的支持,方法是消失
ScreenView的其余部分(使用
setVisibility(GONE)
),这样它将填充整个
GridLayout

一次只能有一个
ScreenView
处于“全屏状态”

当前行为

目前,这仅在尝试更改
网格布局
中第一个
屏幕视图
的“状态”(这是预期行为)时起作用

当试图从第二个
屏幕视图等更改“状态”时,我遇到以下奇怪的行为(请参见下面示例的):

屏幕视图
的“状态”更改为“全屏”时,它被其他
屏幕视图覆盖,例如:

  • 当将第二个
    屏幕视图
    的“状态”更改为“全屏”时,第一个
    屏幕视图
    覆盖了他
  • 当将第三个
    屏幕视图
    的“状态”更改为“全屏”时,第一个和第二个“屏幕”都覆盖了他,依此类推
  • 依此类推,直到将第9个
    屏幕视图
    的“状态”更改为“全屏”,之前所有的
    屏幕视图
    都覆盖了他
重要提示

当我用
TextView
替换
SurfaceView
(在
ScreenView
中)时,例如,将
ScreenView
的“状态”更改为“全屏”“按预期执行,因此产生这种奇怪行为的问题组件似乎是
SurfaceView
ScreenView
由它组成

让我知道,如果添加源代码将帮助您解决我的问题


非常感谢您的帮助。

我通过将
SurfaceView
替换为一个行为完全符合我预期的方式来解决问题。

我通过将
SurfaceView
替换为一个行为完全符合我预期的方式来解决问题。

您最好改变方法,SurfaceView不同于普通视图,事实上,它们就像一个被底层本机代码填满的“洞”。如果使用多个SurfaceView、重叠的SurfaceView等,您可能会发现各种各样的工件,甚至不同的accross设备。。。另外,您的应用程序将消耗大量资源。@rupps那么您有什么建议?我不知道该建议什么,因为您可能面临低级别手机视频驱动程序的限制。我建议你试试其他设备。如果你看到不同的行为(我打赌你会),我会放弃这个想法,尝试只使用一个surfaceview(活动视频播放),并将其余的更改为图像。此外,您可以尝试将假定隐藏的SurfaceView移出屏幕(因为Visibility.Goe与视图中与真实曲面不同步的“正常”部分相关)。您最好改变方法,SurfaceView与正常视图不同,事实上,它们就像一个“洞”,被底层本机代码填满。如果使用多个SurfaceView、重叠的SurfaceView等,您可能会发现各种各样的工件,甚至不同的accross设备。。。另外,您的应用程序将消耗大量资源。@rupps那么您有什么建议?我不知道该建议什么,因为您可能面临低级别手机视频驱动程序的限制。我建议你试试其他设备。如果你看到不同的行为(我打赌你会),我会放弃这个想法,尝试只使用一个surfaceview(活动视频播放),并将其余的更改为图像。此外,您还可以尝试将假定隐藏的SurfaceView移出屏幕(因为Visibility.Goe与视图中与真实曲面不同步的“正常”部分相关)