我在此项目主要独立负责项目的迭代开发。
- 为了解决数据过多渲染的时间过长导致的白屏,一开始我考虑在渲染第一帧的时候让它少渲染一些数据,然后将剩下的数据放到下一帧去渲染,这样达到了效果,但是会导致刚开始的时候触摸屏幕滑动无效。我又考虑按需加载,将所有的卡片分成八份,刚开始的时候加载八分之一,然后在NestedScrollView触底的时候再加载八分之一。这样解决了问题,还有个点击tab定位到某个卡片的问题,计算出那个卡片所在的范围,先将数据加载出来再在下一帧滚动到指定位置。期间遇到进度框显示不出来,因为在ViewRootImpl中渲染的时候会优先处理UI渲染,然后才是动画,解决方式就是在当前帧只显示进度框,将加载数据并渲染放到下一帧。
- 通过自定义HorizontalScrollView方式自定义并封装了特殊的ViewPager指示器,通过继承SeekBar的方式给SeekBar添加跟踪进度文本。
- 解决CoordinatorLayout和PullToRefresh一起使用导致的偶现的滑动冲突问题。