如何在LinearLayout中的连续RelativeLayouts之间获得空间?

时间:2013-08-16 23:55:01

标签: android layout relativelayout

我正在尝试创建一个可点击的图像按钮列表,其中包含适合Horizo​​ntalScrollView的文本。图像/内容将以编程方式设置。执行此操作的最佳方法似乎是LinearLayout,然后包含一系列RelativeLayouts,其中包含显示相关内容的视图。但是,我在每个RelativeLayout之间获取空间时遇到了麻烦。即使我已经在xml中设置了边距并且在编程上它们似乎被忽略了,而且RelativeLayout对象也被挤压在一起。

一些代码:

<RelativeLayout
    android:id="@+id/details_image_button"
    android:layout_width="75dp"
    android:layout_height="100dp"
    android:layout_marginLeft="10dp"
    android:background="#00ff78">

    <ImageView
        android:id="@+id/loadable_image_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
         />

    <TextView
        android:id="@+id/details_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#b083ef"
        android:text="PH - Info about title"
        android:layout_alignParentBottom="true"
        />

//Code below is looped through several times
        RelativeLayout imageButtonLayout = (RelativeLayout) inflater.inflate(R.layout.details_image_button, null);
        RelativeLayout.LayoutParams imageButtonLayoutParams = new RelativeLayout.LayoutParams(100, 100);
        imageButtonLayoutParams.setMargins(10, 10, 10, 10);
        imageButtonLayout.setLayoutParams(imageButtonLayoutParams);

我得到的当前结果是一个稳定的绿色(RelativeLayout的背景颜色),而不是一组RelativeLayouts的预期结果,每个RelativeLayouts之间有一个空格。我怎样才能最好地在每个RelativeLayout之间获得保证金或缓冲?

1 个答案:

答案 0 :(得分:3)

如果您的RelativeLayout位于LinearLayout内,则您需要使用的LayoutParamsLinearLayout.LayoutParams

RelativeLayout imageButtonLayout = (RelativeLayout) 
                                   inflater.inflate(R.layout.details_image_button, null);
    LinearLayout.LayoutParams imageButtonLayoutParams = new 
                                   LinearLayout.LayoutParams(100, 100);
    imageButtonLayoutParams.setMargins(10, 10, 10, 10);
    imageButtonLayout.setLayoutParams(imageButtonLayoutParams);

LayoutParams来自父母,而不是孩子。