Android: как добавить нижний колонтитул в полноэкранный режим прокрутки? - PullRequest
3 голосов
/ 20 августа 2011

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

Проблема в том, что я не знаю, сколько видовбудет добавлен в верхний или нижний колонтитул.

Если при размещении нижнего колонтитула в нижней части окна он будет перекрываться, я хочу поместить нижний колонтитул внизу прокрутки.(Может быть, добавив его в RelativeLayout с правилом, что он должен быть ниже верхнего компонента?)

Вот изображение того, что я пытаюсь получить:

желаемый результат

Где:

1) RelativeLayout содержит как TableLayout вверху, так и LinearLayout внизу.

2) TableLayout расширяется внизкак TableRows добавляются к нему.

3) LinearLayout расширяется снизу по мере добавления к нему представления.

~~~

Я хотел бы дляscrollview увеличится в размере, достаточном для размещения компонентов без наложения.

Заранее благодарим за такую ​​потрясающую поддержку сообщества

1 Ответ

10 голосов
/ 20 августа 2011

Я думаю, что вы можете решить это в линейном макете.Вы устанавливаете три блока в линейном макете: верхний колонтитул, основной текст, нижний колонтитул.Установите body в fill_parent и layout_weight = 1, таким образом, тело будет расширяться, чтобы заполнить то, что осталось после верхнего и нижнего колонтитула, взятого из родительского элемента.Вся структура помещается в ScrollView.

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TableRow><TextView android:text="Text1"/></TableRow>
            <TableRow><TextView android:text="Text2"/></TableRow>
        </TableLayout>
        <RelativeLayout 
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <TextView 
                android:text="@string/lorem_ipsum"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        </RelativeLayout>
        <LinearLayout 
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView
                android:text="Text3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
            <TextView
                android:text="Text4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        </LinearLayout>
    </LinearLayout>
</ScrollView>

Я тестировал это в эмуляторе Android 2.1 и, похоже, он работает.

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