我有一个使用片段的应用程序。在我用户的一台设备(HTC One)上,片段相互重叠,他的屏幕最终看起来一团糟:
我试图在我自己的硬件上重现它,虽然它不是 HTC One。我也尝试过使用 android 版本 4.1.2,这是他拥有的版本,并且运行良好。没有买HTC One,有没有人有什么建议?
当我添加新片段时,我这样做
Fragment f = new MyFragment();
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.replace(R.id.mainContent, f);
ft.addToBackStack(null);
ft.commit();
我的 XML 布局(修剪到相关部分):
<RelativeLayout>
<LinearLayout>
<!-- My home screen content is here -->
</LinearLayout>
<!-- This is where the fragment gets placed -->
<LinearLayout android:id="@+id/mainContent"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
</RelativeLayout>
更新
添加的片段具有以下布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/app_bg"
tools:context=".DeviceListActivity" >
<!-- snipped! (for brevity) -->
</RelativeLayout>
我一直在玩 - 我注意到如果我删除 android:background 我可以重现这个问题,这让我相信 HTC One 导致片段的背景属性由于某种原因被忽略。