4

我的设置如下。我在 ViewPager 中有一个包含 3 个片段的活动。第一个和最后一个 Fragment 通过 xml 膨胀,而中心 Fragment 是直接从 SurfaceView 派生的 Class。这个类有自己的渲染线程。

该项目使用 ActionBarSherlock 4.0.2 以及 Support Library V4+。

问题: 当显示 SurfaceView 并且我滑动到其他片段之一时,这些片段不会在过渡期间呈现。IOW 而不是在其他 Fragments 中滚动,SurcaceView 会留下先前渲染的伪影(涂抹)。转换完成后,将显示目标 Fragment。从外部 Fragments 之一滑动到中心的 SurfaceView 可以按预期工作。

可能相关的问题: 当使用 ActionBar 中的选项卡执行转换而不是滑动目标时 Fragments 根本不呈现。尽管没有呈现任何内容,但控件仍处于活动状态。例如,按下(不可见)按钮会导致指定的操作。这会导致刷新使视图可见。

我没有发布源代码,而是将其全部放在GitHub 上

我已经尝试了很多来找到行为的根本原因,但无济于事。

  • 在中间使用另一个非 SurfaceView 片段可以正常工作。

  • 将 SurfaceView 包装在 LinearLayout 视图中并没有什么不同。

  • 关闭 Thread 和 SurfaceView 内的所有自定义绘图均无效。

欢迎任何想法,建议和想法。

4

0 回答 0