3

In my app I'm creating a RelativeLayout programmatically and setting topMargin. On Nexus 5X, margin is set, however, on LG G4, there is no margin.

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;
}

Parent layout is always 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"/>

I've tried setting LinearLayout divider, but it doesn't work on both devices.

I've found this post,suggesting to use parent's LayoutParams, but it does not apply here, since I'm already using correct LayoutParams.

Community
  • 1
  • 1
Marius Kaunietis
  • 674
  • 4
  • 17

0 Answers0