继承的 RelativeLayout 内的 LinearLayout 内的 ImageView 边距不起作用

Margins of ImageView inside LinearLayout inside inherited RelativeLayout not working

<br.application.component.HexagonGrid
    android:id="@+id/hexagonGrid"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:id="@+id/searchResultList"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="12dp"
        android:orientation="vertical" >
    </LinearLayout>
</br.application.component.HexagonGrid>

HexagonGrid 的创建是为了将元素放入其中,例如 RelativeLayout,这样:

public class HexagonGrid extends RelativeLayout {
    public HexagonGrid(Context context) {
        super(context);
    }

    public HexagonGrid(Context context, AttributeSet aSet) {
        super(context, aSet);
    }

    [...]

    private ImageView createGrayHexagonDefault() {
        ImageView grayHexagon = new ImageView(context);
        LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        lp.setMargins( 10, 0, 10, 0 );
        grayHexagon.setScaleType(ScaleType.MATRIX);
        grayHexagon.setImageDrawable(getResources().getDrawable(R.drawable.hexagon_disabled));
        grayHexagon.setLayoutParams(lp);
        return grayHexagon;
    }
}

我正在 HexagonGrid.

内的 searchResultList 中以编程方式添加一些图像
LinearLayout searchResultList= (LinearLayout) findViewById(R.id.searchResultList);
searchResultList.addView(createGrayHexagonDefault());

我不明白为什么 setMargins 不起作用:

lp.setMargins( 10, 0, 10, 0 );

谁能告诉我为什么?

天哪!

ImageView 将有一个 LinearLayout 作为其父级,但有两种类型的 LayoutParams

RelativeLayout.LayoutParamsLinearLayout.LayoutParams

出于某种原因,我的项目默认自动选择了 RelativeLayout.LayoutParams。这样边距不起作用。