flutter_in_action_2nd icon indicating copy to clipboard operation
flutter_in_action_2nd copied to clipboard

6.11自定义Sliver的纠错和建议

Open ZhZhZhen opened this issue 3 years ago • 1 comments

纠错 1、SliverFlexibleHeader示例代码中对parentUsesSize属性使用时的注释 “我们不会使用自节点的 Size",好像应该是 "我们不会使用子节点的 Size"

建议 1、感觉先讲SliverPersistentHeaderToBox再讲SliverFlexibleHeader会更好理解,个人感觉SliverPersistentHeaderToBox会更简单一点

ZhZhZhen avatar Jun 30 '22 09:06 ZhZhZhen

还有一个地方,_FlexibleHeaderRenderSliver中有一个判断paintExtent区域的代码:

paintExtent = min(paintExtent, constraints.remainingPaintExtent);

这样判断绘制区域,在一直往下拖动的时候,拖到一定程度顶部的高度就又开始缩小并且和列表分离了。 原因是随着往下拖动的过程,remainingPaintExtent变小了,但是绘制起点是-overScroll,这一部分也有进行绘制。 改成这样效果就正确了:

paintExtent = min(paintExtent, constraints.remainingPaintExtent + overScroll);

ZhZhZhen avatar Jun 30 '22 10:06 ZhZhZhen