3

在我的应用程序中,我正在以编程方式创建一个 RelativeLayout 并设置 topMargin。在 Nexus 5X 上,设置了边距,但在 LG G4 上,没有边距。

public static PictureView createPictureView(final Context context) {
    PictureView newPicture = new PictureView(context);
    int pictureHeight = context.getResources()
            .getDimensionPixelSize(R.dimen.picture_view_height);//200dp
    final LinearLayout.MarginLayoutParams params = new LinearLayout.MarginLayoutParams(
            LinearLayout.LayoutParams.MATCH_PARENT,
            pictureHeight);
    params.topMargin = context.getResources()
            .getDimensionPixelSize(R.dimen.activity_vertical_margin);//16dp
    newPicture.setLayoutParams(params);
    return newPicture;
}

父布局始终为 LinearLayout:

<LinearLayout
        android:id="@+id/pictureContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingEnd="@dimen/activity_horizontal_margin"
        android:paddingStart="@dimen/activity_horizontal_margin"/>

我试过设置 LinearLayout divider,但它不适用于两种设备。

我发现这篇文章,建议使用父母的 LayoutParams,但它不适用于这里,因为我已经在使用正确的 LayoutParams。

4

0 回答 0