Android Studio - Заполните оставшееся пустое пространство (с высотой?) - PullRequest
0 голосов
/ 03 мая 2018

У меня есть это: Приложение

Я хочу взять более светлый синий текст ( код ) и сделать так, чтобы он автоматически заполнял пустое пространство, если оно есть, например: пример (он может быть пустым) текст).

Текстовый код для изменения размера (второй TextView, если вы не можете изменить размер макета):

    <!-- Info -->
    <LinearLayout
        android:id="@+id/personalAppLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="@color/backgroundColor">

        <TextView
            android:id="@+id/descriptionTitle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/homepage_title"
            android:textAlignment="center"
            android:textStyle="bold"
            android:layout_marginTop="@dimen/activity_vertical_margin"/>

        <TextView
            android:id="@+id/description"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/homepage_description"
            android:textAlignment="center"
            android:layout_marginStart="@dimen/activity_horizontal_margin"
            android:layout_marginEnd="@dimen/activity_horizontal_margin"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:layout_marginBottom="@dimen/activity_vertical_margin"/>

    </LinearLayout>

    <!-- Greyish Line -->
    <View
        android:layout_width="match_parent"
        android:layout_height="0.1dp"
        android:background="@color/backgroundColorDark" />

Это код для изображений: Изображения

    <!-- Info -->
    <LinearLayout
        android:id="@+id/personalAppLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="@color/backgroundColor">

        <TextView
            android:id="@+id/descriptionTitle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/homepage_title"
            android:textAlignment="center"
            android:textStyle="bold"
            android:layout_marginTop="@dimen/activity_vertical_margin"/>

        <TextView
            android:id="@+id/description"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/homepage_description"
            android:textAlignment="center"
            android:layout_marginStart="@dimen/activity_horizontal_margin"
            android:layout_marginEnd="@dimen/activity_horizontal_margin"
            android:layout_marginTop="@dimen/activity_vertical_margin"
            android:layout_marginBottom="@dimen/activity_vertical_margin"/>

    </LinearLayout>

Нижний навигационный код: Нижняя навигация

    <!-- Bottom Navigation -->
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <android.support.design.widget.BottomNavigationView
            android:id="@+id/navigation"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginEnd="0dp"
            android:layout_marginStart="0dp"
            android:background="?android:attr/windowBackground"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:menu="@menu/navigation"
            android:layout_alignParentBottom="true"/>

    </RelativeLayout>

Все находится внутри LinearLayout с вертикальной ориентацией, перед этим есть еще макеты, но я считаю, что это те, которые имеют значение.

Можно ли автоматически заполнить пустое место на мобильном телефоне без указания количества дп?

Код в целом (я намерен автоматически изменять размер первого LinearLayout до все оставшееся пустое пространство заполняется, не перекрывая другие макеты)

РЕДАКТИРОВАТЬ : теперь он заменен на полный рабочий код, благодаря Rockney

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">


<!-- Info -->
<LinearLayout
    android:id="@+id/personalAppLayout"
    android:layout_width="match_parent"
    <!-- Previously android:layout_height="wrap_content" and without a weight -->
    android:layout_height="0dp"
    android:weight="1"
    android:orientation="vertical"
    android:background="@color/backgroundColor">

    <TextView
        android:id="@+id/descriptionTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/homepage_title"
        android:textAlignment="center"
        android:textStyle="bold"
        android:layout_marginTop="@dimen/activity_vertical_margin"/>

    <TextView
        android:id="@+id/description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/homepage_description"
        android:textAlignment="center"
        android:layout_marginStart="@dimen/activity_horizontal_margin"
        android:layout_marginEnd="@dimen/activity_horizontal_margin"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:layout_marginBottom="@dimen/activity_vertical_margin"/>

</LinearLayout>

<!-- Greyish Line -->
<View
    android:layout_width="match_parent"
    android:layout_height="0.1dp"
    android:background="@color/backgroundColorDark" />

<!-- Social Media -->
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="70dp"
    android:orientation="horizontal"
    android:background="@color/backgroundColor"
    android:gravity="center" >

    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_margin="@dimen/activity_horizontal_margin"
        android:background="@drawable/linkedin_logo" />

    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_margin="@dimen/activity_horizontal_margin"
        android:background="@drawable/facebook_logo" />

    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_margin="@dimen/activity_horizontal_margin"
        android:background="@drawable/twitter_logo" />

</LinearLayout>

<!-- Greyish Line -->
<View
    android:layout_width="match_parent"
    android:layout_height="0.1dp"
    android:background="@color/backgroundColorDark" />

<!-- Bottom Navigation -->
<RelativeLayout
    android:layout_width="match_parent"
    <!-- Previously android:layout_height="match_parent" -->
    android:layout_height="60dp" >

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginEnd="0dp"
        android:layout_marginStart="0dp"
        android:background="?android:attr/windowBackground"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:menu="@menu/navigation"
        android:layout_alignParentBottom="true"/>

</RelativeLayout>

</LinearLayout>

1 Ответ

0 голосов
/ 03 мая 2018

Вы можете использовать layout-weight. Он указывает, сколько дополнительного пространства находится для просмотра. Вы можете прочитать больше об этом в сообщении stackoverflow. Вам нужно изменить свой макет на это.

<LinearLayout
android:id="@+id/personalAppLayout"
android:layout_width="match_parent"
android:layout_height="0dp”
android:orientation="vertical"
android:layout_weight=“1”
android:background="@color/backgroundColor">

<TextView
    android:id="@+id/descriptionTitle"
    android:layout_width="match_parent"
    android:layout_weight=“1”
    android:layout_height="0dp"
    android:text="@string/homepage_title"
    android:textAlignment="center"
    android:textStyle="bold"
    android:layout_marginTop="@dimen/activity_vertical_margin"/>

<TextView
    android:id="@+id/description"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/homepage_description"
    android:textAlignment="center"
    android:layout_marginStart="@dimen/activity_horizontal_margin"
    android:layout_marginEnd="@dimen/activity_horizontal_margin"
    android:layout_marginTop="@dimen/activity_vertical_margin"
    android:layout_marginBottom="@dimen/activity_vertical_margin"/>

 </LinearLayout>
...