Iro*_*som 3 android android-custom-view android-layout
事情就是这样:我想以编程方式添加一些图像.图像应当必须具有topMargin的5dip除了第一图像,在一个LinearLayout具有一个vertical orientation方式.在代码段下方:
LinearLayout body = (LinearLayout) findViewById(R.id.body);
for (int i = 1; i <= 4; i++) {
ImageView img = new ImageView(this);
MarginLayoutParams lp = new MarginLayoutParams(-2, -2);
img.setImageResource(R.drawable.image);
if (i != 1) {
lp.setMargins(0, 5, 0, 0);
}
img.setLayoutParams(lp);
body.addView(img);
body.requestLayout();
}
Run Code Online (Sandbox Code Playgroud)
通过运行程序,我可以看到4个图像(这里)逐个垂直对齐,但没有topMargin(如代码中所示5dip).body是id的LinearLayout.这是以下XML部分:
<LinearLayout
android:id="@+id/body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#901b0e08"
android:orientation="vertical"
android:paddingLeft="6dp"
android:paddingRight="8dp" >
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我不知道这里出了什么问题.
谢谢.
尝试将您MarginLayoutParams改为:
LayoutParams lp = new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT );
Run Code Online (Sandbox Code Playgroud)
之所以这样做,是body为一个LinearLayout,因此你想使用LinearLayout特异性LayoutParams.
| 归档时间: |
|
| 查看次数: |
7215 次 |
| 最近记录: |