LinearLayouts重叠(在RecyclerView的row_layout.xml中)

时间:2017-11-22 04:48:08

标签: android xml android-recyclerview android-linearlayout overlap

我尝试搜索多个StackOverflow帖子,因为似乎有很多。 我尝试了很多解决方案,包括:

更改排序/嵌套 添加android:layout_above 添加android:align_bottom 添加android:align_ParentBottom

等...

XML看起来很好,所以不确定为什么重叠?

图片:enter image description here

row_layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    >
    <LinearLayout
        android:id="@+id/rl"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="3dp"
        android:weightSum="3"
        >
        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginEnd="10dp"
            android:layout_weight=".45"
            android:src="@drawable/user" />

        <EditText
            android:id="@+id/nameOfBusinessET"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="2.55"
            android:hint="@string/nameOfBusiness"
            android:inputType="textPersonName"
            android:imeOptions="actionDone"
            android:textColorHint="@color/grey" />

    </LinearLayout>

     <LinearLayout
        android:id="@+id/rl2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="3dp"
        android:weightSum="3"
        >
        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginEnd="10dp"
            android:layout_weight=".45"
            android:src="@drawable/user" />

            <EditText
            android:id="@+id/bizLocationET"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="2.55"
            android:hint="Location"
            android:inputType="textPersonName"
            android:imeOptions="actionDone"
            android:textColorHint="@color/grey" />



 </LinearLayout>
</RelativeLayout>

4 个答案:

答案 0 :(得分:0)

您使用了RelativeLayoutRelativeLayout是一个视图组,可以显示相对位置的子视图。每个视图的位置可以指定为相对于同级元素(例如,在另一个视图的左侧或下方)或相对于父级RelativeLayout区域的位置(例如与底部,左侧或中心对齐) )。

更改您的

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="100dp">
        ......
</RelativeLayout>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:orientation="vertical">
    .....
</LinearLayout>

答案 1 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="100dp"
>
<LinearLayout
    android:id="@+id/rl"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="3dp"
    android:weightSum="3"
    >
    <ImageView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginEnd="10dp"
        android:layout_weight=".45"
        android:src="@drawable/user" />

    <EditText
        android:id="@+id/nameOfBusinessET"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2.55"
        android:hint="@string/nameOfBusiness"
        android:inputType="textPersonName"
        android:imeOptions="actionDone"
        android:textColorHint="@color/grey" />

</LinearLayout>

<LinearLayout
    android:id="@+id/rl2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="3dp"
    android:weightSum="3"
    >
    <ImageView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginEnd="10dp"
        android:layout_weight=".45"
        android:src="@drawable/user" />

    <EditText
        android:id="@+id/bizLocationET"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2.55"
        android:hint="Location"
        android:inputType="textPersonName"
        android:imeOptions="actionDone"
        android:textColorHint="@color/grey" />



</LinearLayout>

希望您正在寻找此项,将您的父级RelativeLayout更改为LinearLayout,方向为垂直方向。

同样LinearLayout表示您可以逐个对齐视图(垂直/水平)。默认LinearLayout是水平的

在哪里 RelativeLayout表示基于其父母和其他观点的观点关系。

答案 2 :(得分:0)

只需在ID为rl2 android:layout_below="@+id/rl"

的LinearLayout中添加一个属性即可

所以你的布局会是这样的。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/card_view"
                android:layout_width="match_parent"
                android:layout_height="100dp">

    <LinearLayout
        android:id="@+id/rl"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="3dp"
        android:weightSum="3">

        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginEnd="10dp"
            android:layout_weight=".45"
            android:src="@drawable/user"/>

        <EditText
            android:id="@+id/nameOfBusinessET"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="2.55"
            android:hint="@string/done"
            android:imeOptions="actionDone"
            android:inputType="textPersonName"
            android:textColorHint="@color/hint_color"/>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/rl2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/rl"
        android:padding="3dp"
        android:weightSum="3">

        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginEnd="10dp"
            android:layout_weight=".45"
            android:src="@drawable/user"/>

        <EditText
            android:id="@+id/bizLocationET"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="2.55"
            android:hint="Location"
            android:imeOptions="actionDone"
            android:inputType="textPersonName"
            android:textColorHint="@color/hint_color"/>

    </LinearLayout>

</RelativeLayout>

答案 3 :(得分:0)

试试这个布局:

enter image description here

 <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="100dp">

        <LinearLayout
            android:id="@+id/rl"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:padding="3dp"
            android:weightSum="2">


            <LinearLayout
                android:id="@+id/rl1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="horizontal"
                android:padding="3dp">


                <ImageView
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:layout_marginEnd="10dp"
                    android:layout_weight="1"
                    android:src="@drawable/temp" />

                <EditText
                    android:id="@+id/bizLocationET"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"
                    android:hint="Location"
                    android:imeOptions="actionDone"
                    android:inputType="textPersonName"
                    android:textColorHint="@color/colorGray" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="horizontal"
                android:padding="3dp">


                <ImageView
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:layout_marginEnd="10dp"
                    android:layout_weight="1"
                    android:src="@drawable/temp" />

                <EditText
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"
                    android:hint="Name of business"
                    android:imeOptions="actionDone"
                    android:inputType="textPersonName"
                    android:textColorHint="@color/colorGray" />

            </LinearLayout>


        </LinearLayout>

    </LinearLayout>
  

一个 Verical Linear layout - &gt; 两个 horizontal linear layout        在每个水平布局中,请image viewedittext