如今不少時候都用手機來看一些工做的文檔表格什麼的,本身要如何實現呢,就想到了tablelayout,但畢竟手機的屏幕大小有限,而tablelayout是不支持滑動的,爲了能看的完整就必須在外層嵌套scrollView和HorizontalScrollView佈局進行左右滑動。但是又有另外一個問題產生了,就是當表格較大時,滑動後會發現你看到的全是數據,可是你並不清楚這些數據是屬於哪一行的或是哪一列,而後你又得滑到最左邊或最頂上,顯得很麻煩,也容易看錯。因此就有的表格的左列和表頭固定的想法,這裏有個關鍵就是固定的左列是左右滑動不移動,但能夠跟隨着上下滑動的,一樣的固定的表頭上下滑動不移動,但能夠跟隨着左右滑動的。下面就是解決的思路: html
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" > <HorizontalScrollView android:id="@+id/scroll1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffffff" android:id="@+id/table"> </TableLayout> </HorizontalScrollView> </ScrollView>
這是一個實現了左右滑動的表格的佈局,想實現左列固定只上下滑動,只要在HorizontaScrollView外ScrollView內繪製左列的佈局遮住表格的左列就能夠了以下: android
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/mFrame"> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" > <HorizontalScrollView android:id="@+id/scroll1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffffff" android:id="@+id/table"> </TableLayout> </HorizontalScrollView> <TableLayout android:layout_width="wrap_content" android:layout_height="fill_parent" android:id="@+id/left"> </ScrollView> </FrameLayout>
若是隻單獨實現左列固定,或是表頭固定用這個方式就能夠了,若是要同時都實現,好比還想實現表頭固定,實現的思路就是繪製一個表頭佈局覆蓋表格的表頭,並實現表格和覆蓋的表頭同步左右滑動。看下這篇文章的說明就明白了http://www.cnblogs.com/devinzhang/archive/2012/07/13/2590222.html。關鍵就是重寫HorizontaScrollView,使滑動時互相調用對方的onScrollChanged方法達到同時滑動。 佈局
相信看了以後你們是可以明白該如何實現的 spa