Почему 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
создал взаимозависимость и привести к ошибке
Предлагаемые исправления:
- Удалить
android:layout_centerVertical="true"
заname
Вы можете добавить marginTop дляname
переместить его немного вниз, напримерandroid:layout_marginTop="5dp"
; или же - Установить фиксированную высоту для
RelativeLayout
т.е.android:layout_height="36dp"
Просто поменяй RelativeLayout
высота до "match_parent"
т.е. android:layout_height="match_parent"