Выровняйте LinearLayout внизу RelativeLayout - PullRequest
0 голосов
/ 30 июня 2018

У меня есть эти вложенные макеты, и я хочу поместить LinearLayout на якорь внизу (внутри) первого RelativeLayout, но я не знаю, как это сделать. Кто-нибудь может мне помочь? Я хочу что-то вроде этого: https://imgur.com/eCCYS8Q

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:orientation="vertical"
        android:weightSum="1">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.65"
            android:background="@drawable/background_gradient">

            <LinearLayout
                android:layout_width="match_parent"

                android:layout_height="wrap_content">

            </LinearLayout>
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.35">

        </RelativeLayout>
    </LinearLayout>
</RelativeLayout>

Ответы [ 4 ]

0 голосов
/ 30 июня 2018

Для правильной работы layout_weight установите android:layout_height="0dp" для обеих относительных схем

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="1">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.65"
        android:background="@color/colorPrimary">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_marginTop="10dp"
            android:layout_marginStart="10dp"
            android:layout_marginEnd="10dp"
            android:layout_height="match_parent"
            android:background="@color/colorAccent">

        </LinearLayout>
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.35"
        android:background="@color/colorPrimaryDark">

    </RelativeLayout>

</LinearLayout>

Измените 10dp на то, что вам подходит.
Я устанавливаю цвета только для того, чтобы различать макеты

0 голосов
/ 30 июня 2018

Так как вам нужно weight в вашем интерфейсе, так что это будет работать для вас

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:orientation="vertical"
    android:weightSum="1">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.65"
        android:background="@drawable/background_gradient">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_height="wrap_content">

        </LinearLayout>
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.35">

    </RelativeLayout>
</LinearLayout>

0 голосов
/ 30 июня 2018

Выровняйте LinearLayout снизу, используя id. возьмите идентификатор относительного расположения и затем выровняйте LinearLayout к основанию в конце относительного идентификатора расположения.

0 голосов
/ 30 июня 2018

Если вы хотите выровнять вид по основанию относительного макета, вам нужно использовать android:layout_alignParentBottom="true"

в представлении, которое собирается застрять в нижней части относительного

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...