我正在构建一个纸牌游戏并使用火焰从精灵表中拉出纸牌。问题是我设置了容纳 SpriteWidget 的 Container 的宽度和高度,但 SpriteWidget 扩展为容器的宽度或高度,但不能同时扩展。我希望它扩展/拉伸到与父容器相同的大小。不幸的是,SpriteWidget 确实没有可用于更改其大小的参数。
我花了几个小时在互联网上搜索解决方案并尝试了许多小部件,包括FittedBox
、Flex
、Positioned.fill
等,但我无法达到预期的效果。当 SpriteWidget 没有参数时,如何使 SpriteWidget 拉伸以填充其父级?
class _PlayerHandPortraitLayout
extends WidgetView<PlayerHand, _PlayerHandController> {
@override
final state;
const _PlayerHandPortraitLayout(this.state) : super(state);
@override
Widget build(BuildContext build) {
return Stack(
children: state.displayHand().asMap().entries.map((cardItem) {
var index = cardItem.key;
var card = cardItem.value;
return Positioned(
left: index * CARD_OVERLAP_OFFSET,
child: Draggable<Container>(
childWhenDragging: Container(),
child: Container(
color: Colors.purple,
width: state.cardWidth,
height: state.cardHeight,
child: SpriteWidget(
sprite: state.spriteImages[card.suite.index][card.value.index],
),
),
feedback: Container(
color: Colors.yellow,
width: state.cardWidth,
height: state.cardHeight,
child: SpriteWidget(
sprite: state.spriteImages[card.suite.index][card.value.index],
),
),
),
);
}).toList(),
);
}
}