Почему RelativeLayout продолжает испортить свой внутренний макет, в то время как его высота установлена ​​в WRAP_CONTENT?

У меня есть RelativeLayout, с которым оборачивается вокруг ImageView и 2 TextViews. Проблема в том, что когда я устанавливаю высоту wrap_content один из TextViews перекрывает другой, пока он находится под ним, но я установил высоту для определенного dp (например, 56dp) все в порядке. Пожалуйста, обратитесь к коду ниже.

<?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:background="?attr/selectableItemBackground"
    android:clickable="true"
    android:focusable="true">

    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/avatar"
        android:layout_width="36dp"
        android:layout_height="36dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_margin="10dp"
        android:scaleType="centerCrop"
        android:src="@drawable/new_profile_avatar"/>

    <com.imnumbers.newpkg.widget.CustomTextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/avatar"
        android:text="Hamed Momeni"/>

    <TextView
        android:id="@+id/number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/name"
        android:layout_toEndOf="@+id/avatar"
        android:layout_toRightOf="@+id/avatar"
        android:text="+989888898885"
        android:textSize="9sp"
        />

</RelativeLayout>

Я также включил скриншоты, чтобы проиллюстрировать проблему.

Скриншот того, как это выглядит:
Неправильно

Скриншот того, как это должно выглядеть:
Правильно

2 ответа

Решение

android:layout_centerVertical="true" за name, android:layout_below="@+id/name" за number а также android:layout_height="wrap_content" за RelativeLayout создал взаимозависимость и привести к ошибке

Предлагаемые исправления:

  1. Удалить android:layout_centerVertical="true" за nameВы можете добавить marginTop для name переместить его немного вниз, например android:layout_marginTop="5dp"; или же
  2. Установить фиксированную высоту для RelativeLayoutт.е. android:layout_height="36dp"

Просто поменяй RelativeLayout высота до "match_parent" т.е. android:layout_height="match_parent"

Другие вопросы по тегам