flutter_in_action_2nd
flutter_in_action_2nd copied to clipboard
6.11自定义Sliver的纠错和建议
纠错 1、SliverFlexibleHeader示例代码中对parentUsesSize属性使用时的注释 “我们不会使用自节点的 Size",好像应该是 "我们不会使用子节点的 Size"
建议 1、感觉先讲SliverPersistentHeaderToBox再讲SliverFlexibleHeader会更好理解,个人感觉SliverPersistentHeaderToBox会更简单一点
还有一个地方,_FlexibleHeaderRenderSliver中有一个判断paintExtent区域的代码:
paintExtent = min(paintExtent, constraints.remainingPaintExtent);
这样判断绘制区域,在一直往下拖动的时候,拖到一定程度顶部的高度就又开始缩小并且和列表分离了。 原因是随着往下拖动的过程,remainingPaintExtent变小了,但是绘制起点是-overScroll,这一部分也有进行绘制。 改成这样效果就正确了:
paintExtent = min(paintExtent, constraints.remainingPaintExtent + overScroll);