android 如何将标题、描述和URL等间距对齐

hpcdzsge  于 2023-05-12  发布在  Android
关注(0)|答案(8)|浏览(132)

以下是当前显示在屏幕上的布局的屏幕截图:

下面是布局的XML代码段:

<?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="match_parent">

    <ImageView
        android:id="@+id/icon"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:layout_alignParentRight="true"
        android:layout_marginRight="-10dp" />

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:height="20dp"
        android:fontFamily="Cabin-Regular"
        android:paddingLeft="10dp"
        android:textColor="#E35B5B"
        android:textSize="14dp" />

    <TextView
        android:id="@+id/desc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/title"
        android:height="44dp"
        android:fontFamily="Cabin-Regular"
        android:paddingLeft="10dp"
        android:paddingRight="100dp"
        android:textColor="#2D2D2D"
        android:textSize="16dp" />

    <TextView
        android:id="@+id/url_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/title"
        android:layout_marginTop="50dp"
        android:height="15dp"
        android:paddingLeft="10dp"
        android:paddingRight="80dp"
        android:textColor="#BDBDBD"
        android:textSize="10dp" />

</RelativeLayout>

我只是想有三个textview正确对齐,并有彼此之间的平等空间。

ybzsozfc

ybzsozfc1#

这是你的布局

<?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="match_parent">

    <ImageView
        android:id="@+id/icon"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:layout_alignParentRight="true"
        android:layout_marginRight="-10dp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="110dp"
        android:layout_toLeftOf="@+id/icon"
        android:orientation="vertical"
        android:weightSum="3">

        <TextView
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:fontFamily="Cabin-Regular"
            android:gravity="center_vertical"
            android:paddingLeft="10dp"
            android:text="Title"
            android:textColor="#E35B5B"
            android:textSize="14dp" />

        <TextView
            android:id="@+id/desc"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_below="@+id/title"
            android:layout_weight="1"
            android:fontFamily="Cabin-Regular"
            android:gravity="center_vertical"
            android:paddingLeft="10dp"
            android:text="Description"
            android:textColor="#2D2D2D"
            android:textSize="16dp" />

        <TextView
            android:id="@+id/url_view"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_below="@+id/title"
            android:layout_weight="1"
            android:gravity="center_vertical"
            android:paddingLeft="10dp"
            android:text="URL"
            android:textColor="#BDBDBD"
            android:textSize="10dp" />
    </LinearLayout>

</RelativeLayout>
qq24tv8q

qq24tv8q2#

这里是代码。尝试使用maximum而不是RelativeLayoutRelativeLayout用于两个或多个元件必须彼此重叠的情况。不要在一个布局中包含所有元素。将您的设计划分为不同的部分,并为每个部分和每个部分内部使用LinearLayout,并包含属于该部分的元素。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight=".25"
        android:orientation="vertical"
        >
        <TextView
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textColor="#E35B5B"
            android:fontFamily="Cabin-Regular"
            android:textSize="14dp"
            android:layout_weight="0.33"
            android:singleLine="true"
            android:ellipsize="end"
            android:gravity="center|left"
            android:paddingLeft="10dp"
            android:text="Google"
            />

        <TextView
            android:id="@+id/desc"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textColor="#2D2D2D"
            android:fontFamily="Cabin-Regular"
            android:textSize="16dp"
            android:layout_weight="0.33"
            android:singleLine="true"
            android:ellipsize="end"
            android:gravity="center|left"
            android:paddingLeft="10dp"
            android:text="Google is a Search engine"
            />
        <TextView
            android:id="@+id/url_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/title"
            android:textColor="#BDBDBD"
            android:textSize="10dp"
            android:layout_weight="0.33"
            android:singleLine="true"
            android:ellipsize="end"
            android:gravity="center|left"
            android:paddingLeft="10dp"
            android:text="http://www.google.com"
            />
    </LinearLayout>
    <LinearLayout
        android:layout_width="110dp"
        android:layout_height="110dp"

        >
        <ImageView
            android:id="@+id/icon"
            android:layout_width="match_parent"
            android:layout_height="match_parent"

            />
    </LinearLayout>

</LinearLayout>
ibps3vxo

ibps3vxo3#

所有测试使用相同的paddingLeftlayout_below如下所示:

<TextView
    android:id="@+id/url_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/desc"
    android:height="15dp"
    android:paddingRight="80dp"
    android:paddingLeft="10dp"
    android:text="url"
    android:textColor="#BDBDBD"
    android:textSize="10dp" />
htzpubme

htzpubme4#

您可以对相对布局的子级使用android:weight=""

oewdyzsn

oewdyzsn5#

在Layout中为标题、描述和URL创建一个 LinearLayout,垂直方向,weightsum=3,并为它们中的每一个使用width=wrap_content,height=0dp,weight=1。

im9ewurl

im9ewurl6#

首先从每个TextView中删除android:height。在最后一个TextView中,您设置了android:layout_marginTop="50。把它拿走。

提示:如果您想垂直或水平显示所有视图,请使用LinearLayout。如果你想使用RelativeLayout,请确保适当地给予边距和填充,以便它们看起来不错。

wsxa1bj1

wsxa1bj17#

看看这个

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1
        android:padding="10dp"
        android:orientation="vertical">

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#E35B5B"
            android:fontFamily="Cabin-Regular"
            android:textSize="14dp"
            android:text="Google"/>

        <TextView
            android:id="@+id/desc"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textColor="#2D2D2D"
            android:fontFamily="Cabin-Regular"
            android:textSize="16dp"
            android:margin_top="5dp"
            android:text="Google is a Search engine"/>

        <TextView
            android:id="@+id/url_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textColor="#BDBDBD"
            android:textSize="10dp"
            android:margin_top="5dp"
            android:text="http://www.google.com"/>

    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <ImageView
            android:id="@+id/icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"/>

    </LinearLayout>

</LinearLayout>
jogvjijk

jogvjijk8#

使用线性布局作为具有weightsum的父布局,并在子布局之间平均分配权重。例如:如果父布局为android:weightsum = "3",然后每个子布局为android:layout_weight = "1"(如果您希望三个子布局中的每一个都有相等的空间)。
PS:不要忘记提到LinearLayout的方向。

相关问题