6

在我的应用程序中,我使用了几个表面视图(用于显示视频和谷歌地图),同时显示在屏幕上。现在我必须添加更改这些视图的配置(位置、大小和可见性)的可能性。切换配置不能停止视频播放,也不能重置地图(我们可以在上面添加 kml 图层)。

在这个目标中,当我切换配置时,我只需更改在新配置中仍然使用的视图的位置和大小,并隐藏其他视图。

问题是,如果我隐藏一个表面视图(在其容器上使用 setVisibility(View.GONE)),其位置与新配置中另一个表面视图的位置重叠,则应该隐藏的表面视图仍然可见!

例如,我们可以有一个配置在左侧显示视频,在右侧显示地图,如下所示:

配置 1

通过单击 1、2、3 或 4 条形按钮,我们可以更改配置(例如,对于只有地图的配置)。视频仍然显示在地图上:

配置 2

任何想法 ?我还尝试将隐藏表面视图的宽度和高度设置为 0,但它不起作用(它没有效果,而将大小设置为 100x100 确实有效)。将表面视图置于屏幕之外(具有负边距)也不起作用。

编辑:设置负边距适用于星系关系,但在星系选项卡上,表面视图被迫在屏幕上。添加标志 FLAG_LAYOUT_NO_LIMITS 使负边距起作用,但随后在手机的状态栏下绘制布局......有什么提示吗?

4

0 回答 0