Android как заполнить родительский, но оставить немного места - PullRequest
0 голосов
/ 19 апреля 2019

Название не очень хорошее, но я не знаю, как еще описать

У меня есть relative layout с 2 элементами, контейнером и кнопкой внизу.

Iхочу, чтобы контейнер заполнил все пространство в относительном слое, оставляя достаточно места, чтобы поместить кнопку

, вот пример:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout  //i'm using linearlayout as an example, it could be anything here
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/b3"
        android:gravity="center"
        android:orientation="vertical">


    </LinearLayout>

    <Button
        android:id="@+id/b3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="asdasdasdasdasdasdasdasd" />
</RelativeLayout>

вот как я хочу, чтобы это выглядело как

Красный означает релятивный макет, зеленый - линейный макет, а желтый - кнопку ...

enter image description here

как я могу сделатьэто?

Ответы [ 3 ]

1 голос
/ 19 апреля 2019
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@color/red"
    android:padding="5dp"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/b"
        android:background="@color/green">

    </LinearLayout>
    <Button
        android:id="@+id/b"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="this is the button"
        android:background="@color/yellow"/>

</RelativeLayout>
0 голосов
/ 19 апреля 2019

Это должно дать вам что-то близкое к тому, что вы хотите:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout  //i'm using linearlayout as an example, it could be anything here
    android:layout_width="match_parent"
    android:layout_height="0px"
    android:layout_weight="3"
    android:gravity="center"
    android:orientation="vertical">
</LinearLayout>

<Button
    android:id="@+id/b3"
    android:layout_width="wrap_content"
    android:layout_height="0px"
    android:layout_weight="1" 
    android:text="asdasdasdasdasdasdasdasd" />

</LinearLayout>
0 голосов
/ 19 апреля 2019
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorAccent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignTop="@+id/b3"
        android:layout_margin="4dp"
        android:background="@color/colorPrimary"
        android:gravity="center"
        android:orientation="vertical">

    </LinearLayout>

    <Button
        android:id="@+id/b3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="asdasdasdasdasdasdasdasd" />
</RelativeLayout>
...