如何在表格布局中添加scrollview?

时间:2017-03-22 04:29:22

标签: android scrollview tablelayout

这是我第一次使用Scrollview,我想用tablelayout 3x8行创建应用程序。行具有相同的高度和宽度,表可以垂直滚动。我怎么能在xml布局中这样做?谢谢你的帮助

<ScrollView android:id="@+id/layout"
    android:layout_height="match_parent"
    android:scrollbars="vertical"
    android:layout_width="match_parent"
    android:layout_marginTop="5dip"
    android:scrollbarStyle="outsideInset"
    android:fillViewport="true"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
<TableLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="*"
    >
    <TableRow
        android:layout_weight="1"
        android:gravity="center">
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
    </TableRow>
    <TableRow
        android:layout_weight="1"
        android:gravity="center">
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
    </TableRow>
    <TableRow
        android:layout_weight="1"
        android:gravity="center">
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
    </TableRow>
    <TableRow
        android:layout_weight="1"
        android:gravity="center">
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
    </TableRow>
</TableLayout>

<TableLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="*"
    >
    <TableRow
        android:layout_weight="1"
        android:gravity="center">
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
    </TableRow>
    <TableRow
        android:layout_weight="1"
        android:gravity="center">
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
    </TableRow>
    <TableRow
        android:layout_weight="1"
        android:gravity="center">
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
    </TableRow>
    <TableRow
        android:layout_weight="1"
        android:gravity="center">
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
        <Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
    </TableRow>
</TableLayout>
    </LinearLayout>
</ScrollView>

2 个答案:

答案 0 :(得分:1)

这是您必须手动设置TableRow高度的方法之一,以便您可以按如下方式实现此目的

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <ScrollView android:id="@+id/layout"
        android:layout_height="match_parent"
        android:scrollbars="horizontal|vertical"
        android:layout_width="match_parent"
        android:layout_marginTop="5dip"
        android:scrollbarStyle="outsideInset"
        android:fillViewport="true"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <LinearLayout
            android:layout_width="match_parent" android:orientation="vertical"
            android:layout_height="match_parent">

            <TableRow
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_height="100dp">
                <Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
            </TableRow>
            <TableRow
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_height="100dp">
                <Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
            </TableRow>
            <TableRow
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_height="100dp">
                <Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
            </TableRow>
            <TableRow
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_height="100dp">
                <Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
            </TableRow>
            <TableRow
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_height="100dp">
                <Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
            </TableRow>
            <TableRow
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_height="100dp">
                <Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
            </TableRow>
            <TableRow
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_height="100dp">
                <Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
            </TableRow>
            <TableRow
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_height="100dp">
                <Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
                <Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
            </TableRow>

        </LinearLayout>
    </ScrollView>

</LinearLayout>  

实现此目的的另一种方法是使用GridViewRecyclerViewRecyclerView是实现这一目标的最简单方法。我希望它为你工作。谢谢

答案 1 :(得分:1)

LinearLayout移除ScrollView并尝试,如果它不起作用,请使用此

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

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="200dp" >
            <EditText
                android:layout_weight="1"
                android:background="#F00"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <EditText
                android:layout_weight="1"
                android:background="#FF0"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <EditText
                android:layout_weight="1"
                android:background="#F0F"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_marginTop="100dp">
            <EditText
                android:layout_weight="1"
                android:background="#F00"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <EditText
                android:layout_weight="1"
                android:background="#FF0"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <EditText
                android:layout_weight="1"
                android:background="#F0F"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_marginTop="100dp">
            <EditText
                android:layout_weight="1"
                android:background="#F00"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <EditText
                android:layout_weight="1"
                android:background="#FF0"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <EditText
                android:layout_weight="1"
                android:background="#F0F"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_marginTop="100dp">
            <EditText
                android:layout_weight="1"
                android:background="#F00"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <EditText
                android:layout_weight="1"
                android:background="#FF0"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <EditText
                android:layout_weight="1"
                android:background="#F0F"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_marginTop="100dp">
            <EditText
                android:layout_weight="1"
                android:background="#F00"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <EditText
                android:layout_weight="1"
                android:background="#FF0"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <EditText
                android:layout_weight="1"
                android:background="#F0F"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_marginTop="100dp">
            <EditText
                android:layout_weight="1"
                android:background="#F00"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <EditText
                android:layout_weight="1"
                android:background="#FF0"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <EditText
                android:layout_weight="1"
                android:background="#F0F"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </TableRow>
    </TableLayout>
</ScrollView>