在Flutter开发中,Container是非常重要的一个控件,在此我不变累述。如果有细心的网友可能会发现一个奇葩问题:Flutter页面背景颜色是colorA,ContainerB控件的背景颜色是colorB,ContainerC控件的背景颜色是colorB,页面子控件包含ContainerB和ContainerC,当你滚动页面时会发现ContainerB和ContainerC之间闪现一个颜色为colorA的分割线条。
当滚动页面时分隔线条就会一直闪现,停止滚动页面有时会显示分隔线条,有时又不会显示。遇到该问题,有的人愁眉苦脸又毫无对策,有的人会说不容易看见就不处理,有的人会用Stack叠加一个colorB的线条控件覆盖上去(代价大并且快速滚动时还能看见闪现的分隔线条)。
我找到一个从根源上解决奇葩问题的方法,ContainerB控件代码加入
decoration: BoxDecoration(
color:colorB,
border: Border(
bottom: BorderSide(
color:colorB,
width: 0,
),
),
)
ContainerC控件代码加入
decoration: BoxDecoration(
color:colorB,
border: Border(
top: BorderSide(
color:colorB,
width: 0,
),
),
)
这可能是Flutter页面渲染的一个bug。2020年中旬我就遇到了这个问题,今年又遇到了,尴尬的是忘记了解决方法。好记性不如烂笔头,还是记录下来吧。