我有一个用于Fragment(android.support.v4.app.Fragment)的xml布局。当第一次添加此片段时,背景可绘制显示正常。但是当这个片段被另一个片段替换,然后再次替换回来(通过创建一个新实例并使用FragmentTransaction.replace()),背景可绘制消失(,但不是所有情况下均为,见下文)。下面是片段的布局XML:Android:RelativeLayout背景可绘制消失
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<include layout="@layout/footer_photos" />
<RelativeLayout
android:id="@+id/pageLayout"
android:background="@drawable/body_background2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@id/footer">
<ImageView
android:id="@+id/page"
android:layout_height="500dp"
android:layout_width="400dp"
android:layout_centerInParent="true"
android:background="#FFF" />
</RelativeLayout>
</RelativeLayout>
有问题的背景绘制在RelativeLayout的id为“页面布局”。
可能的线索:
- 当我删除在那里的ImageView,背景绘制显示了罚款。
- 其他碎片具有相似的布局xmls(具有相同的背景可绘制),但没有ImageViews在里面,他们工作正常。
- 其中的一个碎片有一个WebView和其中的按钮,并且这个背景显示正常。
- 用有问题的片段替换“WebView片段”后,背景显示正常(!?)。
编辑:如果一个图像加载到ImageView然后一个对话框主题的活动在它上面启动,然后完成相同的问题始终发生。我的解决方案解决了这两种情况。
我认为使用独立的ImageViews而不是使用android:background属性可以解决问题。 – Ken