带有固定标题的Android可滚动表,使虚拟行不可见

时间:2014-12-11 15:16:31

标签: android visibility android-tablelayout fixed-header-tables

我知道有几篇关于此的帖子,但我无法解决这个问题。我想要一个带有标题的表,当滚动表格的内容时,该标题保持可见。我喜欢这种方法:http://www.entreotrascosas.net/creating-dynamic-scrollable-fixed-header-tables-in-android/

这是我的xml。我有两个TableLayout,一个用于标题,一个用于内容。我将每个行填充一行,layout_height设置为0dp

<TableLayout
    android:id="@+id/headerLayout"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
    <TableRow
       android:id="@+id/hiddenLongestRow"
       android:layout_width="wrap_content"
       android:layout_height="0dp"  />
</TableLayout>

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/headerLayout"
    android:fadeScrollbars="false" > 
    <TableLayout
        android:id="@+id/contentLayout"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TableRow
            android:id="@+id/hiddenHeaderRow"
            android:layout_width="wrap_content"
            android:layout_height="0dp"  />     
    </TableLayout>   
</ScrollView>

然后我以编程方式使用我的值和我的xml中指定的行填充表,其中包含标题/最长行的虚拟值。现在,两个表的列具有相同的宽度。到目前为止,非常好。

但现在我需要两个虚拟行消失。据说将高度设置为0dp会这样做,但对我来说却没有,行总是可见的。

我尝试以编程方式将LayoutParams的高度设置为0,但它没有帮助。将可见性设置为INVISIBLE或GONE不起作用。我还能做什么?

1 个答案:

答案 0 :(得分:0)

您可以尝试删除它:

TableRow row = (TableRow)findViewById(R.id.hiddenHeaderRow);
table.removeView(row);