哈哈,感觉下CSDN的新版本编辑器,至少看起来还挺不错的,之前的编辑器插入代码很不方便,发布后会出现源代码,还估计是一个bug.
言归正传,这次要记录的是android怎么实现表格头、侧边固定滑动,并且实现纵向的合并,本来自我感觉良好,后来被群友告知这个有一个开源框架可以实现,想想自己的傻傻的去实现,累觉不爱,anywhere,已经写好了就只能安慰自己以后出现问题了方便修复吧,毕竟这是自己的东西。先看一个效果图:
要实现的效果就是左右滑动白色区域时,“时间”一列固定,头部跟着滑动,上下滑动白色区域时,头部固定,时间一列跟着滑动。显示的部分可以纵向合并。
思路也比较自然,首先需要滚动肯定要用ScrollView了。上下滚动就用平常的ScrollView就可以实现了,主要是左右滚动的时候要固定左边,这就需要处理好布局了,并且内容区要和头部同步,也就是任何一个在滚动的时候同步告诉另一个的位置。另一个就是合并,我现在的合并就是通过控制高度来实现,比如要合并两行,那么在开始合并的时候设置这个高度为2倍单元格高度,然后在下一次渲染下方的单元格时直接跳过,这样保证不会多出一个单元格来,具体的看代码,以下是核心代码:
总体的布局:main.xml
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40">
<TextView
android:id="@+id/txt_time"
android:gravity="center"
android:textColor="@color/text_content_black"
android:text="@string/dpf_header_time"
android:background="@drawable/border_dfp_title"
android:layout_weight="1"
android:textSize="@dimen/text_font_normal"
android:layout_width="0dp"
android:layout_height="match_parent"/>
<com.wicky.fixtable.MyHorizontalScrollView
android:id="@+id/sc_title"
android:scrollbars="none"
android:background="@drawable/border_dfp_title"
android:layout_weight="3"
android:layout_width="0dp"
android:layout_height="match_parent">
</com.wicky.fixtable.MyHorizontalScrollView>
</LinearLayout>
<ScrollView
android:layout_weight="1&#