如何以CORRECT方式在水平Scroll视图中放置一个非常长的表格布局?

时间:2012-12-02 22:11:59

标签: android horizontalscrollview android-tablelayout

我尝试查看数字示例和帖子,但没有一个符合我的问题。

我需要创建一个包含许多列的非常长(水平)的表,因此无法在单个屏幕中显示。而且我不想把桌子洒了,因为以这种方式显示我的桌子非常重要。

我在下面粘贴了我的XML布局(包括主要的重要部分)

问题是我删除了代码:

android:fillViewport="true"

来自 Horizo​​ntalScrollView 然后我的桌子里面被挤压到一个地方,特别是在它的左侧。它甚至没有使用这个Horizo​​ntalScrollView容器区域。

和, 如果我使用这段代码,那么这个Horizo​​ntalScrollView会在里面显示我的整个表格 - 列是挤压的,以确保它们适合这个滚动视图。

我只是希望这个滚动视图只显示适合屏幕宽度的tablelayout的内容,所以我可以滚动其余列。但是现在,我似乎无处可去近。

那我该怎么解决我的问题呢?我做错了吗?

这也是我的XML布局。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>

<HorizontalScrollView
    android:id="@+id/horizontalScrollView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scrollbars="horizontal"
    android:fillViewport="true">
    <TableLayout
        android:id="@+id/bot_scoreBoard"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/table_shape"
        android:orientation="horizontal"
        android:stretchColumns="*" >

        <TableRow
            android:layout_height="fill_parent"
            android:layout_margin="2dp"
            android:background="#ffffff"
            >
            <TextView
            />
               ....
            more than 16 columns of made using TextView
 ....
        </TableRow>
    </TableLayout>

</HorizontalScrollView>

</LinearLayout>

3 个答案:

答案 0 :(得分:3)

我得到了答案。那是因为我正在使用

 android:stretchColumns="*" 

在TableLayout中。

另外我的TextView是列,需要一些特定的宽度尺寸,而不仅仅是

android:layout_width="fill_parent" or "wrap_content"

那些是问题。

答案 1 :(得分:2)

您应该使用TableLayout包裹LinearLayout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

<HorizontalScrollView
    android:id="@+id/horizontalScrollView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true"
    android:scrollbars="horizontal" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="horizontal" >

        <TableLayout
            android:id="@+id/bot_scoreBoard"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/table_shape"
            android:orientation="horizontal"
            android:stretchColumns="*" >

            <TableRow
                android:layout_height="fill_parent"
                android:layout_margin="2dp"
                android:background="#ffffff" >

                <TextView />
           ....
        more than 16 columns of made using TextView
     ....
            </TableRow>
        </TableLayout>
    </LinearLayout>
</HorizontalScrollView>

答案 2 :(得分:0)

您正在使用android:stretchColumns="*",您必须使用layout_width而不是match_parentwrap_content使用某些确定值。

代表。 layout_width = "250dp"