Android片段屏幕重叠

bug*_*ixr 5 android android-layout

我有一个使用片段的应用程序.在我的一个用户设备(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();
Run Code Online (Sandbox Code Playgroud)

我的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>
Run Code Online (Sandbox Code Playgroud)

UPDATE

添加的片段具有以下布局:

<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>
Run Code Online (Sandbox Code Playgroud)

我一直在玩 - 我注意到如果我删除android:background我可以重现这个问题,这让我相信HTC One导致片段的背景属性因某些原因被忽略.

bug*_*ixr 1

事实证明问题是资源问题,但不清楚为什么......

我的后台仅在ldpi文件夹中;通常,较高的密度将使用任何可用的图形,但在这种情况下,设备会忽略该文件。一个错误?不知道 - 无论如何,修复方法是为 xxdpi 文件夹创建一个与相同名称匹配的资源。