ScrollView TableLayout внутри TabHost

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

Я хочу сделать только часть таблицы макета для прокрутки.

В конце есть RelativeLayout, который служит легендой (Key Guide) информации, которую я буду динамически показывать в виде строк внутри таблицы. ТАК, это должно быть в нижней части экрана и не должно прокручиваться как сама таблица. Но в этом коде все под вкладкой прокручивается вверх (кроме RelativeLayout)

<LinearLayout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false"
android:orientation="vertical">

//Fixed On Screen

<TabHost
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
        </TabWidget>

//Fixed On Screen

        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingTop="4dp" >

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="fill_horizontal"
                android:padding="4dp" >

                <TextView
                    style="@android:style/TextAppearance.Medium"
                    android:layout_weight="1"
                    android:text="@string/start"
                    android:textStyle="bold"
                    android:typeface="serif" />

                <TextView
                    style="@android:style/TextAppearance.Medium"
                    android:layout_weight="1"
                    android:text="@string/end"
                    android:textStyle="bold"
                    android:typeface="serif" />

                <TextView
                    style="@android:style/TextAppearance.Medium"
                    android:layout_weight="1"
                    android:paddingLeft="5dp"
                    android:text="@string/effect"
                    android:textStyle="bold"
                    android:typeface="serif" />
            </TableRow>
        </TableLayout>
    </LinearLayout>

//Scroll this content inside the Tab ONLY

    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center_horizontal" >

        <ScrollView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <TableLayout
                    android:id="@+id/Tab1"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:paddingTop="4dp"
                    android:stretchColumns="*" >
                </TableLayout>

                <TableLayout
                    android:id="@+id/Tab2"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:paddingTop="4dp"
                    android:stretchColumns="*" >
                </TableLayout>
            </LinearLayout>
        </ScrollView>
    </FrameLayout>
</TabHost>

//Fixed On Screen at the very bottom so the area between this and Tab is what scrolls

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_weight="1"
            android:background="@color/green"
            android:padding="5dp"
            android:text="@string/excellent"
            android:textColor="#FFFFFF" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_weight="1"
            android:background="@color/light_blue"
            android:padding="5dp"
            android:text="Good"
            android:textColor="#FFFFFF" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_weight="1"
            android:background="@color/dark_gray"
            android:padding="5dp"
            android:text="@string/normal"
            android:textColor="#FFFFFF" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_weight="1"
            android:background="@color/red"
            android:padding="5dp"
            android:text="Bad"
            android:textColor="#FFFFFF" />
    </TableRow>
</RelativeLayout>

Короче говоря, я хочу, чтобы на экране было зафиксировано следующее:

  • Вкладка
  • Первый TableLayout
  • Last RelativeLayout

И хочу только среднюю FrameLayout / TableLayout для прокрутки. Этот макет будет динамически заполнен строками.

У меня есть ощущение, что это так просто, как, возможно, wrap_content или же fill_parent может быть. Но не могу понять это.

Спасибо!

0 ответов

Другие вопросы по тегам