0

我正在尝试使用 TableLayout 在我的应用程序中创建一个基本数据表。第一行包含每一列的标题。之后的每一行都是数据。我希望数据可以滚动,同时保持第一个标题行可见(即第一行不会与其余行一起滚动)。

我尝试了类似以下的方法(不成功):

<TableLayout>
  <TableRow>
    <!-- The headers -->
    <TextView android:text="Header #1"/>
    <TextView android:text="Header #2"/>
    <TextView android:text="Header #3"/>
  </TableRow>

  <ScrollView>
    <!--The rest of the data -->
    <TableRow>
    <TableRow>
    ...
  </ScrollView>
</TableLayout>

这会导致程序崩溃。还有其他建议吗?

4

3 回答 3

2

您不需要将 tablerow 作为直接后代,它会崩溃,因为 scrollview 只接受一个孩子。在滚动视图中放置另一个表格布局并将行放入其中。

于 2011-02-08T10:19:32.730 回答
1

它崩溃是因为您只能将TableRows 作为 a 中的直接后代TableLayout

您可能想要使用的是ListView它上面的一个和一个“标题”。

示例(不完整):

<LinearLayout
  android:orientation="horizontal"
  android:layout_width="fill_parent"
>
   <TextView
      android:id="@+id/header1"
      android:layout_weight="1"
   />
   <TextView
      android:id="@+id/header2"
      android:layout_weight="1"
   />
   <TextView
      android:id="@+id/header3"
      android:layout_weight="1"
   />
</LinearLayout>
<ListView
    android:layout_width="fill_parent"
...
/>

关键是layout_weight="1"android:layout_width="fill_parent",它将为您提供 3 个相同大小的视图。然后,您需要Adapter在您提供的自定义布局中创建一个和,Adapter对子视图执行相同的操作。您可能需要稍微调整填充/边距,以使它们完全水平对齐。

于 2010-08-03T04:19:04.577 回答
0

RelativeLayout两者中使用ScrollViewTableLayout与顶部对齐,并TableLayouts使用相同的第一行填充两者可能会奏效。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
    <ScrollView
            android:id="@+id/tabscrvie"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            >
            <TableLayout 
                android:id="@+id/gridview"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                >

        </TableLayout>
    </ScrollView>
    <TableLayout
            android:id="@+id/headergridview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignTop="@id/tabscrvie"
            >
    </TableLayout>
</RelativeLayout>
于 2012-06-23T07:12:21.557 回答