以编程方式设置保证金不适用于某些设备

时间:2016-07-21 06:48:43

标签: android android-linearlayout android-layoutparams

在我的应用中,我以编程方式创建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"/>

我已尝试过setting LinearLayout divider,但它并不适用于这两种设备。

我找到this post,建议使用父版的LayoutParams,但这里不适用,因为我已经使用了正确的LayoutParams。

0 个答案:

没有答案