Android:layout_alignTop не работает аналогично Android:layout_alignBottom
Я пытаюсь создать полупрозрачный красный View и TextView внутри RelativeLayout, высота которого следует за высотой TextView, он работает, как и ожидалось, когда TextView находится над полупрозрачным красным View:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:background="#FF0000"
android:alpha="0.5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/textView"/>
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TEST"
android:textSize="50dp"
android:textColor="#000000"/>
</RelativeLayout>
но я хочу немного его изменить: поставьте View выше TextView, а остальные останутся без изменений, я попытался изменить android:layout_alignBottom
в android:layout_alignTop
:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:background="#FF0000"
android:alpha="0.5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignTop="@id/textView"/>
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TEST"
android:textSize="50dp"
android:textColor="#000000"/>
</RelativeLayout>
но теперь View
кажется, не следует за высотой TextView
:
В чем проблема и как я могу это исправить?
2 ответа
Добавлять android:layout_alignBottom="@+id/textView"
ввиду. например-
<View
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignTop="@id/textView"
android:layout_alignBottom="@+id/textView"
android:alpha="0.5"
android:background="#FF0000" />
Я хочу немного его изменить: поместите View выше TextView, а остальные останутся неизменными
Если, говоря выше, вы имеете в виду на вершине TextView
Что касается оси Z, то вы ошибаетесь.
Что вы можете сделать, это просто изменить порядок представлений в макете: макет, который объявлен первым, будет размещен первым, а следующий - поверх него.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TEST"
android:textSize="50dp"
android:textColor="#000000"/>
<View
android:background="#FF0000"
android:alpha="0.5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView"/>
</RelativeLayout>