当前位置: 首页 > 知识库问答 >
问题:

为什么当片段被隐藏时,片段中的SurfaceView仍然可见?

孟凯泽
2023-03-14

隐藏程序是怎么处理碎片的?它只是将创建的视图设置为Gone吗?

共有1个答案

黄君博
2023-03-14

SurfaceView创建一个完全独立的图形层,由系统合成。“孔”包含在视图层次结构中,这样布局就可以正确地显示出来。当涉及surfaceview时,有很多事情不能正常工作。

相比之下,textureview实际上是视图本身的一部分,并将适当地执行操作。缺点是有一个额外的步骤,将像素从屏幕外的缓冲区复制到视图中。这是由GPU完成的,因此速度非常快,但如果您试图以60fps的速度对屏幕的大部分进行动画制作,或者在播放完整长度的电影时尽量减少电池消耗,那么SurfaceView可能是一个更好的选择。

如果使用textureview是一种选择,那么这样做可能会使您的生活更简单一些。

 类似资料:
  • 我找到的唯一解决办法就是打电话给 在显示父片段之后。这会以某种方式触发视图被重新创建并出现在屏幕上。不幸的是,这有时会导致在旧的观察器上处理两次调用的寻呼机适配器时出现异常。 有没有更好的办法做到这一点?我想我要问的是:

  • 我开发了一个应用程序,其中有导航抽屉和抽屉内的许多片段,所以我在打开片段内的片段时遇到问题,在一个片段中,当用户单击列表视图项时,我有列表视图,他们获得了与列表项相关的数据,所以我面临的问题是,它仍然单击不可见的列表,但单击 片段布局 开放片段代码

  • 我正在开发包含2个片段的应用程序,我想根据需要显示隐藏。下面的代码有一个简单的例子来说明我的问题。这个简单的Fragmentactivity包含一个按钮和一个listfragment。 这个简单的例子完美无瑕。但我不满足于展示隐藏片段。如果删除布局。设置可见性(View.GONE);然后从代码中选择ft.hide(f);不会隐藏碎片。事实上,我们不是在隐藏片段,而是在隐藏容器。 我的问题是,这是一

  • 我想了解Android中活动生命周期和片段生命周期之间的相互作用,所以我决定启动一个新项目并从这个页面复制代码 然后我想,为了提高我的理解力,在平板电脑上测试它,改变它的方向,看看它发生了什么(尽管可能不是为了这个目的)。通过logcat,我跟踪在活动和国家/地区片段上触发的主要事件,例如在activity Oncreate中,我写道: 这是我从纵向视图开始,然后旋转时得到的结果: TAG:活动:

  • 我正在创建片段转换器助手类,对此我有一些问题。 我称之为碎片转换器 它有一个fragmentContainer,它是一个视图组,包含我想展示的所有片段。 我已经做了自己的替换(片段片段更改,布尔需要保存到堆栈) 功能是: 从碎片容器中移除旧碎片 错误如下: 如果我使用我的替换功能并保存以使其正常工作,我可以使用设备的后退按钮后退并返回到先前添加的片段,它就像一个符咒。 但是,当我想替换一个片段而不

  • 我正在使用fragmentTransaction处理片段,它看起来如下所示: 有几个片段,我想在回去的时候跳过其中的一些。