我想創建一個表格,有標題和內容,實現標題始終可見,但是內容可以滾動。
如何實現?
<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"的尺寸。