Flutter技术问询:如何生成对应数量的不同朝向Widget
解决方案
直接用List.generate根据controller.turns.value的数值生成对应数量的Widget,放到Row的children属性里即可,同时可通过索引设置不同朝向。示例代码如下:
Row( children: List.generate(controller.turns.value, (index) { return Container( padding: const EdgeInsets.all(10), child: RotatedBox( // 用索引+基础旋转值实现不同朝向,可按需调整规则 quarterTurns: controller.rotation.value + index, child: Image( image: const AssetImage('reference.png'), height: (MediaQuery.of(context).size.height * 0.8) * controller.size.value, width: (MediaQuery.of(context).size.width * 0.8) * controller.size.value, ), ), ); }), )
代码说明
List.generate(count, generator):第一个参数传入controller.turns.value指定生成的Widget数量;第二个参数是生成单个Widget的回调,index为当前Widget的索引(从0开始)。- 不同朝向逻辑:通过
quarterTurns: controller.rotation.value + index让每个容器的旋转角度依次递增,你也可以自定义规则,比如index * 1(每次多转90度)。 - 保留了你原有的Container、Image样式与尺寸计算逻辑,保证视觉效果一致。
内容的提问来源于stack exchange,提问作者Luigi Gontijo
相关产品推荐
相关产品推荐

