Flutter中BoxFit.cover未实现覆盖效果,视频被拉伸挤压的解决咨询
解决Flutter视频无法覆盖容器的问题
你的代码问题出在内部嵌套的固定尺寸SizedBox——它把VideoPlayer的尺寸强制和父容器一致,导致FittedBox的BoxFit.cover无法生效,只能挤压视频适配尺寸。
要实现视频覆盖容器的效果,直接去掉内部的SizedBox即可:
SizedBox( height: context.height, width: context.width, child: FittedBox( fit: BoxFit.cover, child: VideoPlayer(videoC.value!), ), )
这样FittedBox会遵循BoxFit.cover的规则:保持视频原有的宽高比,将视频缩放至完全覆盖父容器的尺寸,超出容器的部分会被自动裁剪,不会出现挤压变形的情况。
如果需要更精细的裁剪控制,可以在外层再套一层ClipRect,不过大多数场景下上面的代码已经足够满足需求。
内容的提问来源于stack exchange,提问作者chichi
相关产品推荐
相关产品推荐

