它可以在没有边距的情况下扩展视图

17

我有这段代码

View item = View.inflate(context, R.layout.item_layout, null);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
                        LayoutParams.WRAP_CONTENT);
    layout.addView(item, params);

我的item布局:(请注意android:layout_marginTop="2dip"部分)


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content" android:layout_marginTop="2dip" android:layout_width="fill_parent">

    <ImageView android:src="@drawable/pic_unknown" android:id="@+id/image1"
        android:layout_height="50dip" android:layout_width="50dip"
        android:padding="5dip"></ImageView>
</RelativeLayout>

在我的布局中,我看到充气的项目列表,但它们之间没有边距。我尝试使用"margintop = 10dip",但仍然没有效果。我的问题是,我在布局中放置的值没有被计算,不管有没有顶部边距,布局都是相同的。

我应该如何在项目之间添加一些空白? 我应该如何充气项目之间的空白? 是否可能充气间隙或某些空间? 还是必须像充气2dip高度的空布局这样使用解决方法? 谢谢


(Note: Translated text may not be an exact equivalent of the original in terms of formatting, style or tone.)
3个回答

23

inflate方法的最后一个参数是您添加充气视图的参数。在您的情况下,它是null。请尝试使用以下代码:

 View item = View.inflate(context, R.layout.item_layout, layout);

好的建议。这是attachToRoot。 - coder_For_Life22
12
我的问题是我正在将一个 View 扩展并将其作为头部附加到 ListView 上;如果我在扩展器中使用 ListView,它会抛出异常。在这种情况下,如何获取边距? - Andrew Wyld
布局是什么? - Saleh Mosleh
1
@SalehMosleh 父视图,您想要将其添加到其中的视图。 - Franziskus Karsunke

3
如果您的边距适用于外部,请尝试使用RelativeLayout进行填充。

0

您可以为您所填充的布局添加边距,如下所示:

final LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                                                                                ViewGroup.LayoutParams.WRAP_CONTENT);
         params.topMargin = 10;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接