我在活动布局中使用SurfaceView时遇到问题。这是XML的一部分:
<LinearLayout...
android:background="@drawable/background_image">
...
<RelativeLayout
android:id="@+id/game_viewcontainer"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.85">
<!-- SurfaceView will be placed here -->
</RelativeLayout>
</LinearLayout>
正如您所看到的,SurfaceView(实际上是它的子类)并没有直接放入XML中,但我稍后会从代码中添加它,这样:
onCreate()
中,我实例化SurfaceView,将其设置为INVISIBLE。我现在不想展示它。addView()
将表面放入game_viewcontainer
问题在于此序列适用于Android 4+的某些测试设备,但它在Android 2.2中引入了一个问题:在第2步和第4步之间,game_viewcontainer
完全黑色 (它没有显示background_image
)。然后,在将SurfaceView设置为VISIBLE后,问题就消失了。
为什么会这样?