Flutterで星評価を作成する方法ログ

結論から言うと以下のコードである。

Widget buildStar(double star){
	return Row(
		mainAxisAlignment: MainAxisAlignment.center,
			children: [
				SizedBox(
					width: star * 24,
					height: 24,
					child: ClipRect(
						child: FittedBox(
							alignment: Alignment.centerLeft,
							fit: BoxFit.none,
							child: Row(
							mainAxisAlignment: MainAxisAlignment.center,
							children: [
								for(int i = 0; i < 5; i++) const Icon(Icons.star, size: 24, color: Colors.amber,)
							],
						),
					),
				)
			),
			SizedBox(
				width: (MAX_STAR - star) * 24,
			)
		],
	);
}

最初にRowウィジェットで星側と星のない側の要素を作成する。
そしてSizedBoxウィジェットで大きさを指定してClipRectウィジェットFittedBoxウィジェットを利用して氷見出た部分の要素を削除している。
for文Iconウィジェットを指定された回数分、星を描画している。