Как растянуть макет, чтобы заполнить экран?

#android #android-layout

#Android #android-layout

Вопрос:

У меня простой макет, подобный этому: (это для почты)

 <ScrollView android:layout_height="0dp" android:layout_width="fill_parent" android:layout_weight="1" android:background="@color/red_start">

        <LinearLayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" android:background="@color/blue_start">

            <TextView style="@style/MyTextViewLabel" android:text="From" android:layout_marginTop="5dp"/>

            <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/shape_white_rounded">
                <TextView style="@style/MyTextViewLabel.Black" android:id="@ id/tv_sender" />
            </LinearLayout>

            <TextView style="@style/MyTextViewLabel" android:text="Subject" android:layout_marginTop="5dp"/>

            <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/shape_white_rounded">
                <TextView style="@style/MyTextViewLabel.Black" android:id="@ id/tv_subject" />
            </LinearLayout>

            <TextView style="@style/MyTextViewLabel" android:text="Body" android:layout_marginTop="5dp"/>

            <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/shape_white_rounded">
                <TextView style="@style/MyTextViewLabel.Black" android:id="@ id/tv_body" />
            </LinearLayout>

        </LinearLayout>

    </ScrollView>
  

По какой-то причине LinearLayout не заполнит ScrollView, как я ожидаю. В принципе, я хочу сделать tv_body для заполнения экрана, и если там больше текста — он должен быть прокручиваемым. Прямо сейчас это выглядит так. Я добавил цвета, чтобы проиллюстрировать, что ScrollView растягивается, но LinearLayout этого не делает..

введите описание изображения здесь

Ответ №1:

Попробуйте добавить

 android:fillViewport="true"
  

в вашем ScrollView.

Проверьте это для получения дополнительных пояснений: http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick /

Комментарии:

1. У меня есть вложенные линейные макеты внутри вида прокрутки. В этом случае это не сработает : (

2. «Верхний» должен иметь height =»fill_parent», кроме того, нет причин, по которым это не сработало бы… вы должны опубликовать свою проблему в другом вопросе, если у вас все еще есть проблемы

3. ты спас меня, приятель 🙂

Ответ №2:

Что произойдет, если вы измените android:layout_height="0dp" в своем ScrollView на android:layout_height="match_parent" ?