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ウィジェットを指定された回数分、星を描画している。