У меня довольно простой RelativeLayout со следующими представлениями:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/main_menu_selector"
android:minHeight="48dp">
<ImageView
android:id="@+id/menuItemAvatar"
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_centerVertical="true"
android:layout_marginStart="10dp"
android:layout_marginEnd="6dp"
android:background="@color/IconOff" />
<ImageView
android:id="@+id/iv_status"
android:layout_width="14dp"
android:layout_height="14dp"
android:layout_alignEnd="@id/menuItemAvatar"
android:layout_alignBottom="@id/menuItemAvatar"
android:scaleType="fitCenter" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toEndOf="@+id/menuItemAvatar"
android:gravity="start"
android:orientation="vertical"
android:padding="4dp">
<TextView
android:id="@+id/menuItemTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textColor="@color/TextBlackColor"
android:textSize="@dimen/main_menu_text_size" />
</LinearLayout>
</RelativeLayout>
Я хочу, чтобы iv_status (маленький зеленый квадрат) находился в правом нижнем углу menuItemAvatar, но то, что я получаю, выглядит так:
Как видите, нижние края не выровнены должным образом. Самое смешное - если я удаляю строку android: layout_centerVertical = "true" из menuItemAvatar, она выравнивается так, как должна:
Но тогда изображение не центрируется и все выглядит смещенным относительно текста.