在 inflate 布局 android 中的每个项目布局之间添加 space

Add space between each item layout in inflate layout android

我做膨胀布局。我想在布局中的每个项目之间留出间距。喜欢下图

这是我在 xml 中的主要代码。父布局

<LinearLayout
            android:id="@+id/mLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:background="#F2F2F2"
            android:orientation="vertical"
            android:padding="2dp"/>

这是我的 inflate 布局

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="3dp"
android:layout_marginTop="5dp"
android:background="@color/white_pure">


<LinearLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="5"
    android:orientation="vertical">

    <TextView
        android:textStyle="bold"
        android:textSize="12sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"/>

    <TextView
        android:layout_width="wrap_content"
        android:textSize="9sp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"/>


</LinearLayout>


<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="3"
    android:gravity="right"
    android:layout_marginRight="5dp"
    android:textColor="@color/blueTransfer"/>

    </LinearLayout>

我怎样才能得到像图像(左侧)。在膨胀布局中的每个项目之间有间距。希望有人能帮助我。

一个解决方案是像这样更改项目布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="3dp"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:background="#fff"
        >
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="5"
            android:orientation="vertical"
            >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:text="aaaaaaaaaaaa"
                android:textColor="#000"
                android:textSize="12sp"
                android:textStyle="bold"
                />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:text="bbbbbbbbbb"
                android:textColor="#000"
                android:textSize="9sp"
                />
        </LinearLayout>
        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginRight="5dp"
            android:layout_weight="3"
            android:gravity="right|center"
            android:text="Details"
            android:textColor="#00f"
            />
    </LinearLayout>

</LinearLayout>

另一个解决方案是

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginStart="5dp"
    android:layout_marginEnd="5dp"
    android:background="#fff"
    android:orientation="horizontal"
    android:padding="3dp"
    >
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        android:orientation="vertical"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:text="aaaaaaaaaaaa"
            android:textColor="#000"
            android:textSize="12sp"
            android:textStyle="bold"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:text="bbbbbbbbbb"
            android:textColor="#000"
            android:textSize="9sp"
            />
    </LinearLayout>
    <TextView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginRight="5dp"
        android:layout_weight="3"
        android:gravity="right|center"
        android:text="Details"
        android:textColor="#00f"
        />
</LinearLayout>

然后如果您使用 ListView,您可以使用 android:divider

增加 ListView 项之间的间距

RecyclerViewHow to add dividers and spaces between items in RecyclerView?

试试这个,

    <?xml version="1.0" encoding="utf-8"?>

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:background="@color/white_pure"
        android:orientation="horizontal"
        android:padding="3dp">


        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_toStartOf="@+id/tv_details"
            android:orientation="vertical"
            android:padding="10dp">

            <TextView
                android:id="@+id/tv_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12sp"
                android:textStyle="bold" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/tv_title"
                android:layout_marginTop="5dp"
                android:textSize="9sp" />


        </RelativeLayout>


        <TextView
            android:id="@+id/tv_details"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginRight="5dp"
            android:layout_weight="3"
            android:gravity="right"
            android:padding="10dp"
            android:layout_centerVertical="true"
            android:textColor="@color/blueTransfer" />

    </RelativeLayout>

您还可以通过 java 代码设置两个膨胀布局之间的 space(边距),如下所示,它适用于我。

View v =LayoutInflater.from(this).inflate(R.layout.item,null);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(0,10,0,0);
v.setLayoutParams(layoutParams);

希望这对你有帮助

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="5dp"
android:background="@color/white_pure">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        android:orientation="vertical">

        <TextView
            android:textStyle="bold"
            android:textSize="12sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Order Attempt 1"
            android:layout_marginLeft="5dp"/>

        <TextView
            android:layout_width="wrap_content"
            android:textSize="9sp"
            android:layout_height="wrap_content"
            android:text="aa"
            android:layout_marginLeft="5dp"/>


    </LinearLayout>


    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:gravity="right"
        android:layout_marginRight="5dp"
        android:text="DETAILS"
        android:textColor="@color/blueTransfer"/>
</LinearLayout>

<View
    android:layout_width="fill_parent"
    android:layout_height="3dp"
    android:background="#F2F2F2" />

我也只是觉得这个技巧..放视图..它也有效..谢谢大家帮助我..:-)

只需在项目顶部使用填充而不是边距 group.and 列表视图使用左边距和 margingRight.item 这样的代码。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:background="@color/white_pure">