Как сделать включенный компонент всегда сверху - PullRequest
0 голосов
/ 09 февраля 2019

Как установить белый фон (вид макета) под моим компонентом поиска?Вот мой код

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <include
        layout="@layout/component_search"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginTop="8dp"/>

<View
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:background="@color/white"
        android:elevation="1dp"/>

</RelativeLayout>

Current white background on top

enter image description here

Ответы [ 3 ]

0 голосов
/ 10 февраля 2019

Если внизу вы имеете в виду по оси у, например, в ряду за другим, то, что у вас уже есть, вероятно, хорошо.Наличие элементов один за другим внутри вашего относительного макета.Вы даже можете форсировать эту позицию, используя android: layout_toBottomOf = "@ + id / your_view_above"

Теперь, если под «вы» имеете в виду ось z, то, что спускается по экрану в вашем направлении, (позади) вывозможно, вы захотите сделать то, что предложено @amit, и вместо этого использовать elevation.

0 голосов
/ 10 февраля 2019

Дайте id включенному представлению как search,установите для его атрибута layout_alignParentTop значение true иустановите для атрибута View layout_below значение "@id/search":

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include
        android:id="@+id/search"
        layout="@layout/component_search"
        android:layout_alignParentTop="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginTop="8dp"/>

    <View
        android:layout_below="@id/search"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:background="@color/white"
        android:elevation="1dp"/>
</RelativeLayout>

Этот атрибут вам не нужен android:orientation="horizontal", поскольку он не применяется к RelativeLayout.

0 голосов
/ 09 февраля 2019

Просто измените порядок тега include и тега View следующим образом:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <View
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:background="@color/white"/>

    <include
        layout="@layout/component_search"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginTop="8dp"/>


</RelativeLayout>

Обновление: android:orientation="horizontal" было там по ошибке, когда я редактировал LinearLayout, чтобы сделатьэто RelativeLayout.Вам не нужно добавлять это в свой RelativeLayout.

...