Ответ 1
Это применимо только при использовании RelativeLayout.
Если вы установите элемент для toLeftOf для другого элемента, это означает, что он будет слева от этого элемента.
Но если этот элемент будет отсутствовать, потому что вы его удалите, например, он будет выровнен с родительским.
Возьмем этот пример
<?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" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="102dp"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignWithParentIfMissing="true"
android:layout_alignBottom="@+id/textView1"
android:layout_toRightOf="@+id/textView1"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
Посмотрите, что произойдет, если вы удалите textView1, но не трогайте textView2.
Он пойдет вниз, слева (не так, потому что он внутри родителя)
Android будет позиционировать элемент относительно родительского элемента, а не элемент, потому что он отсутствует.
Если это ложные параметры, относящиеся к отсутствующим элементам, будут проигнорированы.