zfman/TimetableView

WeekView数组越界

Mystery00 opened this issue · 9 comments

当source里面的Schedule存储的课程数据,如果所在的位置是9-11节(9、10、11)的时候,在绘制原点的时候会出现数组越界。
image
解决办法(目测):在标记课程的时候,判断end是否大于10,如果大于10,将end置为10。

zfman commented

感谢,反馈已收到!

我最初的想法是:圆点使用周一至周五、1-10节的数据绘制,并且这个功能是新增加的,所以忽略了这个情况。

我会尽快恢复,谢谢。

zfman commented

好的,我刚看到那个pr,我正在看怎么合并,以前没合并过代码,嘻嘻,我一会确认过就会合并了

zfman commented

@Mystery00 嗯对了,嘻嘻,共同加油!

以下内容或许可以给你点思考:

课表的布局大部分的解决方案是用相对布局来做的,我用的线性布局,通过分析超级课程表和课程格子的布局,发现他们用的相对布局。

相对布局可以减少布局层次并且可以尽量减少冗余的布局,比如周日没有课的时候,我的方法依然需要一个LinearLayout,但使用相对布局就会省一个布局。

我前一段时间有打算把它改成相对布局(当时添加布局做好了,切换周次没做好,后来由于忙并且一直用的LinearLayout还挺稳定的,害怕修改后会不稳定,所以就没用相对布局的方案),现在LinearLayout方案的性能已经和其他的相差无几了,还可以用

这大概就是我之前的布局
image
此外,为了实现可调表格高度宽度,所以课程表的那个布局外面还套了两个ScrollView,用于处理和ViewPager的滑动冲突(这个另外算)。
大概和你的做法是一样的

zfman commented

嗯呢,可以

请问,目前TimetableView有添加设置整体不透明度的想法吗?因为我的课表给用户了设置背景的选项,所以打算更改TimtableView的源码实现设置不透明度,目前正在分析代码和布局,目前打算是课程的背景色(白色)去掉,节次的侧边栏添加不透明度,星期的顶栏因为代码里面写明了颜色的RGB值,所以可能改动的地方有点点多,所以在这里询问一下你的意见

zfman commented

有这个想法,以前想做,但是没来得及做

欢迎一起完善这个控件

等我这段时间忙完就打算再添加点新功能

如果你对这个控件的结构有不了解的地方可以问我,我们讨论讨论,我的qq:1193600556