我想创建一个表格,有标题和内容,实现标题始终可见,但是内容可以滚动。
如何实现?
<TableLayout
android:id="@+id/tlNames"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="*"
android:shrinkColumns="*" >
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content">"
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="dummy"
android:textSize="15sp"
android:textColor="#FF0000"
android:visibility="invisible" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:gravity="center"
android:text="Player1"
android:textColor="#FF0000"
android:textSize="15sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Player2"
android:textColor="#FF0000"
android:textSize="15sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Player3"
android:textColor="#FF0000"
android:textSize="15sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="player4"
android:textColor="#FF0000"
android:textSize="15sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="dummy"
android:textSize="15sp"
android:textColor="#FF0000"
android:visibility="invisible" />"
</TableRow>
<View android:layout_height="5dp"/>
</TableLayout>
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TableLayout
android:id="@+id/tlScore"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="*"
android:shrinkColumns="*" >
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="@android:color/white"
android:textSize="15sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="20"
android:textColor="@android:color/black"
android:textSize="10sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="20"
android:textColor="@android:color/black"
android:textSize="10sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="20"
android:textColor="@android:color/black"
android:textSize="10sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="20"
android:textColor="@android:color/black"
android:textSize="10sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="20"
android:textColor="@android:color/black"
android:textSize="10sp" />
</TableRow>
</tableLayout>
</ScrollView>
现在的问题是标题不能和内容对齐:
dummy Player1 player2 player3 player4 dummy
20 20 20 20 20 20
有什么方法可以对齐?或者实现第一行不动,别的行滚动?
一种方法是使用 LinearLayouts 来代替 TableLayout/TableRow 结构。标题应该是一个横向的LinearLayout;主体部分应该是一个 ScrollView,围绕着一个垂直的 LinearLayout 和行的横向的LinearLayouts。然后,你可以使用 android:layout_weight 给每一列分配空间,在标题和行之间保持一致性。
另一种方法是滚动自己设置的容器类,实现你期望的模式。这样好像变的复杂了。这种方法能保持你现有的滚动表,但是用一个横向的 LinearLayout 代替标题,根据 TableLayout
设置的文本中列的宽度,再用代码设置标题中 "columns"的尺寸。
可以在code中动态计算没一列的宽度,这样应该是可以对其的
方法一:不知道你的这个表格是windowsXP系统吗?把表格复制到word内,排好段落再复制回来。
方法二:式具榄有个窗口,窗口冻结就行啦。