继承的 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.LayoutParams
和 LinearLayout.LayoutParams
出于某种原因,我的项目默认自动选择了 RelativeLayout.LayoutParams
。这样边距不起作用。
<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.LayoutParams
和 LinearLayout.LayoutParams
出于某种原因,我的项目默认自动选择了 RelativeLayout.LayoutParams
。这样边距不起作用。