TableLayout中的ScrollView

时间:2013-01-20 22:35:54

标签: java android scrollview tablelayout

我的整个活动是TableLayout。我希望前几个TableRow位于ScrollView之外且始终可见。然后,我想要ScrollView开始,并在TableRow内有10 ScrollView个。然后,我想在TableRow下方有几个ScrollView个,其中包含按钮,这些按钮也始终可见,不会滚动。

下面是我的代码的粗略草图。

<TableLayout>    
    <TableRow></TableRow>                       
    <TableRow></TableRow>        
    <TableRow>
        <ScrollView
            <TableLayout
                <TableRow></TableRow>
                <TableRow></TableRow>
            </TableLayout>
    </ScrollView>
   </TableRow></TableRow>
   <TableRow>
       <Button></Button>    
       <Button></Button>
   </TableRow>
</TableLayout>

以下是我的实际代码。如果你想看到它,可以滚动很多代码。

<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/tableLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="1"
    android:shrinkColumns="0"
    android:orientation="vertical"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="70dp"
    android:paddingBottom="50dp"
    android:background="@drawable/scroll" >    

    <TableRow
        android:id="@+id/header"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <TextView
            android:id="@+id/category"
            android:layout_height="wrap_content"
            android:layout_width="0px"
            android:layout_weight="1"
            android:textStyle="bold"
            android:textSize="15sp"
            android:paddingTop="10dp"
            android:gravity="center_horizontal" />

        <TableLayout
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <TableRow
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1" >

                <TextView
                    android:id="@+id/points"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight=".25"
                    android:textSize="10sp"
                    android:gravity="left" 
                    android:textStyle="bold" />
            </TableRow>

            <TableRow
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1" >

                <TextView
                    android:id="@+id/percentage"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight=".3"
                    android:textSize="10sp"
                    android:gravity="left"
                    android:textStyle="bold" />
            </TableRow>

            <TableRow
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1" >

                <TextView
                    android:id="@+id/total_score"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:layout_weight=".45"
                    android:textSize="10sp"
                    android:gravity="left"
                    android:textStyle="bold" />
            </TableRow>
        </TableLayout>
    </TableRow>

    <View 
        android:layout_width="fill_parent"
        android:layout_height="1dp"       
        android:background="#000001" />

    <TableRow
        android:id="@+id/row3"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <TextView
            android:id="@+id/imageColumn"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="0" />

        <TextView
            android:id="@+id/questionColumn"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight=".45"
            android:textSize="12sp"
            android:textStyle="bold|italic"
            android:gravity="center_vertical" />

        <TextView
            android:id="@+id/answerColumn"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight=".3"
            android:textSize="12sp"
            android:textStyle="bold|italic"
            android:gravity="center_vertical" />

        <TextView
            android:id="@+id/verseColumn"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight=".25"
            android:textSize="12sp"
            android:textStyle="bold|italic"
            android:gravity="center_vertical" />
    </TableRow>

    <TableRow
        android:id="@+id/row3a"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

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

            <TableLayout
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1" >

                <TableRow
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:stretchColumns="0,1,2,3"
                    android:layout_weight="1" >

                    <ImageView
                        android:id="@+id/q1Image"
                        android:layout_width="10dp"
                        android:layout_height="10dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q1Question"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".45"
                        android:textSize="10sp"
                        android:paddingLeft="2dp"
                        android:paddingRight="2dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q1Answer"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".3"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q1Verse"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".25"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />
                </TableRow>

                <View 
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"       
                    android:background="#C2BEBF" />

                <TableRow
                    android:id="@+id/row5"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:stretchColumns="0,1,2,3"
                    android:layout_weight="1" >

                    <ImageView
                        android:id="@+id/q2Image"
                        android:layout_width="10dp"
                        android:layout_height="10dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q2Question"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".45"
                        android:textSize="10sp"
                        android:paddingLeft="2dp"
                        android:paddingRight="2dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q2Answer"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".3"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q2Verse"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".25"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />
                </TableRow>

                <View 
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"       
                    android:background="#C2BEBF" />

                <TableRow
                    android:id="@+id/row6"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:stretchColumns="0,1,2,3"
                    android:layout_weight="1" >

                    <ImageView
                        android:id="@+id/q3Image"
                        android:layout_width="10dp"
                        android:layout_height="10dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q3Question"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".45"
                        android:textSize="10sp"
                        android:paddingLeft="2dp"
                        android:paddingRight="2dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q3Answer"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".3"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q3Verse"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".25"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />
                </TableRow>

                <View 
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"       
                    android:background="#C2BEBF" />

                <TableRow
                    android:id="@+id/row7"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:stretchColumns="0,1,2,3"
                    android:layout_weight="1" >

                    <ImageView
                        android:id="@+id/q4Image"
                        android:layout_width="10dp"
                        android:layout_height="10dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q4Question"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".45"
                        android:textSize="10sp"
                        android:paddingLeft="2dp"
                        android:paddingRight="2dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q4Answer"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".3"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q4Verse"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".25"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />
                </TableRow>

                <View 
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"       
                    android:background="#C2BEBF" />

                <TableRow
                    android:id="@+id/row8"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:stretchColumns="0,1,2,3"
                    android:layout_weight="1" >

                    <ImageView
                        android:id="@+id/q5Image"
                        android:layout_width="10dp"
                        android:layout_height="10dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q5Question"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".45"
                        android:textSize="10sp"
                        android:paddingLeft="2dp"
                        android:paddingRight="2dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q5Answer"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".3"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q5Verse"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".25"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />
                </TableRow>

                <View 
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"       
                    android:background="#C2BEBF" />

                <TableRow
                    android:id="@+id/row9"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:stretchColumns="0,1,2,3"
                    android:layout_weight="1" >

                    <ImageView
                        android:id="@+id/q6Image"
                        android:layout_width="10dp"
                        android:layout_height="10dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q6Question"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".45"
                        android:textSize="10sp"
                        android:paddingLeft="2dp"
                        android:paddingRight="2dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q6Answer"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".3"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q6Verse"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".25"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />
                </TableRow>

                <View 
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"       
                    android:background="#C2BEBF" />

                <TableRow
                    android:id="@+id/row10"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:stretchColumns="0,1,2,3"
                    android:layout_weight="1" >

                    <ImageView
                        android:id="@+id/q7Image"
                        android:layout_width="10dp"
                        android:layout_height="10dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q7Question"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".45"
                        android:textSize="10sp"
                        android:paddingLeft="2dp"
                        android:paddingRight="2dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q7Answer"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".3"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q7Verse"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".25"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />
                </TableRow>

                <View 
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"       
                    android:background="#C2BEBF" />

                <TableRow
                    android:id="@+id/row11"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:stretchColumns="0,1,2,3"
                    android:layout_weight="1" >

                    <ImageView
                        android:id="@+id/q8Image"
                        android:layout_width="10dp"
                        android:layout_height="10dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q8Question"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".45"
                        android:textSize="10sp"
                        android:paddingLeft="2dp"
                        android:paddingRight="2dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q8Answer"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".3"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q8Verse"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".25"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />
                </TableRow>

                <View 
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"       
                    android:background="#C2BEBF" />

                <TableRow
                    android:id="@+id/row12"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:stretchColumns="0,1,2,3"
                    android:layout_weight="1" >

                    <ImageView
                        android:id="@+id/q9Image"
                        android:layout_width="10dp"
                        android:layout_height="10dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q9Question"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".45"
                        android:textSize="10sp"
                        android:paddingLeft="2dp"
                        android:paddingRight="2dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q9Answer"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".3"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q9Verse"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".25"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />
                </TableRow>

                <View 
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"       
                    android:background="#C2BEBF" />

                <TableRow
                    android:id="@+id/row13"
                    android:layout_width="0dip"
                    android:layout_height="wrap_content"
                    android:stretchColumns="0,1,2,3"
                    android:layout_weight="1" >

                    <ImageView
                        android:id="@+id/q10Image"
                        android:layout_width="10dp"
                        android:layout_height="10dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q10Question"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".45"
                        android:textSize="10sp"
                        android:paddingLeft="2dp"
                        android:paddingRight="2dp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q10Answer"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".3"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />

                    <TextView
                        android:id="@+id/q10Verse"
                        android:layout_width="0dip"
                        android:layout_height="wrap_content"
                        android:layout_weight=".25"
                        android:textSize="10sp"
                        android:layout_gravity="center_vertical" />
                </TableRow>
            </TableLayout>
        </ScrollView>
    </TableRow>

    <TableRow
        android:id="@+id/row14"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:stretchColumns="0,1"
        android:layout_weight="1" >

        <Button 
            android:id="@+id/mainmenuBtn"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight=".33"
            android:textSize="10sp" />

        <Button 
            android:id="@+id/highscoresBtn"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight=".33"
            android:textSize="10sp" />
        <Button 
            android:id="@+id/playBtn"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight=".34"
            android:textSize="10sp" />
    </TableRow>
</TableLayout>

下面是它输出的显示。在我尝试添加ScrollView之前,它都显示正确。我试图添加ScrollView的原因是因为文本太多而我必须使字体大小非常小以适应所有内容,但它不可读因为它太小了。然后我决定将其设为ScrollView并使文字大小更大。

enter image description here

这是很多写作,所以希望它有意义!

2 个答案:

答案 0 :(得分:1)

将整个活动包装在LinearLayout中然后有三个单独的TableLayout可能是更好的方法,使用中间TableLayout上/周围的滚动视图。

答案 1 :(得分:0)

  • 采取父亲相对布局
  • 在Top上有一个线性布局,可以封装你的几行取决于你是否选择tablelayout或多个线性也可以做你的工作
  • 然后在底部采用另一个线性,其中包含您需要的按钮
  • 然后将listview放在这些可以滚动的谎言之间。

我会优先使用scrollview列表视图,因为它可以简化代码复杂性。