ScrollView中的Android TableLayout

时间:2013-11-28 05:36:50

标签: android scrollview tablelayout

我希望ScrollView TableLayout与屏幕具有相同的高度,但是为什么表只占用屏幕的一半,而ScrollView正按照预期全屏显示。

我尝试将table和rows的高度更改为wrap_content,但显示相同的结果。同样将桌子的高度改变为固定高度(例如900dp)也不起作用。即使最后一行高度也没有显示完整的评级栏。似乎表格被迫具有特定的宽度。

如果我删除ScrollView,它可以正常工作。

任何人都可以帮忙。

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="@drawable/border"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".EditEntry" >
    <TableLayout
        android:id="@+id/tableLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TableRow
            android:id="@+id/tr3a"
            android:padding="2.5dp"
            android:background="@color/col1"
            android:gravity="center_vertical"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
        android:layout_weight="1" >

            <TextView
                android:id="@+id/lab_bookname"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/bookname" />

            <EditText
                android:id="@+id/bookname"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:hint="@string/definputtext2" />

        </TableRow>

        <TableRow
            android:id="@+id/tr3"
            android:padding="2.5dp"
            android:background="@color/col2"
            android:gravity="center_vertical"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
        android:layout_weight="1" >
            <TextView
                android:id="@+id/lab_printname"
            android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/print_name" />

            <EditText
                android:id="@+id/printname"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:hint="@string/definputtext2" />

        </TableRow>
        ......................
        ......................
        ......................
    </TableLayout>
</ScrollView>

enter image description here

2 个答案:

答案 0 :(得分:10)

在您的scrollview xml - &gt;

中添加此行
     android:fillViewport="true"

这使得子布局能够全屏显示,如果它是 layout_width&amp; layout_height match_parent / fill_parent。 。在你的情况下,TableLayout将获得使用此行的完整大小..!享受...!

答案 1 :(得分:1)

在工作之间放置线性布局,但我不知道为什么直接将一些高度设置为表视图不起作用。

   <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/black"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".EditEntry" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/darker_gray" >

            <TableLayout
                android:id="@+id/tableLayout1"
                android:layout_width="match_parent"
                android:layout_height="1000dp" >

                <TableRow
                    android:id="@+id/tr3a"
                    android:layout_width="wrap_content"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:background="@color/col1"
                    android:gravity="center_vertical"
                    android:padding="2.5dp" >

                    <TextView
                        android:id="@+id/lab_bookname"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="@string/bookname" />

                    <EditText
                        android:id="@+id/bookname"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:hint="@string/definputtext2" />
                </TableRow>

                <TableRow
                    android:id="@+id/tr3"
                    android:layout_width="wrap_content"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:background="@color/col2"
                    android:gravity="center_vertical"
                    android:padding="2.5dp" >

                    <TextView
                        android:id="@+id/lab_printname"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="@string/print_name" />

                    <EditText
                        android:id="@+id/printname"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:hint="@string/definputtext2" />
                </TableRow>
            </TableLayout>
        </LinearLayout>

    </ScrollView>