Flutter สร้างcontainer เรียง ตามจำนวนตัวแปล ทำยังไงหรอครับ

ผมจะสร้าง จำนวนContainer ให้เรียงตามจำนวน ตัวแปร ที่ให้ User เป็นคนกำหนด ต้องทำยังไงหรอครับมีตัวpackge หรือ widget ตัวไหน ทำได้ไหม

image
จำนวนที่ให้User เลือกมี 2-7
ตัวแปรชื่อ Studyclass
แล้วให้แสดงContainer ตามจำนวนตัวแปร
โดยเรียงกันแบบRowจนสุดขอบscreenครับ

ปล. ผมลองใช้ListView.Builder ที่แบบเลื่อนได้ดู
แต่ ผมไม่ต้องการให้มันเลื่อนได้แบบ ListView ผมแค่ลองใช้เพราะคิดว่าถ้าขนาดมันเล็กกว่าหน้าจอมันจะ ไม่เลื่อนแล้วมีปํญหาเรื่องการปรับขนาดContainerแต่และboxอีก

อธิบายง่ายๆคือ ตัวแปรมีค่าเท่าไหร่ก็สร้างContainer จำนวนเท่านั้น เรื่องขนานContainer ผมใช้ ขนาดของ หน้าจอหารจำนวนContainer ก็เลยจะพอดีscreen image

Codeที่ผมลองใช้ListView.Builder

class ClassStudy extends StatefulWidget {
  @override
  _ClassStudyState createState() => _ClassStudyState();
}
Widget _boxs(int idx){
  print(screenHeight/34/7);
  return Padding(
    padding: const EdgeInsets.all(2.0),
    child: Container(
      color: Colors.blue,
      width: screenWidth/3/StudyClass,
      height: 10,
      child: Text(
        '$idx',style: GoogleFonts.fjallaOne(fontSize: TextSize),
      ),
    ),
  );
}

class _ClassStudyState extends State<ClassStudy> {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: Center(
        child: Container(
          decoration: BoxDecoration(
            boxShadow: [
              BoxShadow(
                  color: Colors.black38,
                  blurRadius: 25,
                  offset: const Offset(0, 4))
            ],
            borderRadius: BorderRadius.all(Radius.circular(20)),
            color: (_switchVal == true) ? Colors.white : Colors.blueGrey[900],
          ),
          height: screenWidth/4,
          width:  screenHeight/4,
          child: ListView.builder(
              scrollDirection: Axis.horizontal,
              itemCount: StudyClass*2,
              padding: const EdgeInsets.all(1),
              itemBuilder: (BuildContext context, int i) {
                if (i.isOdd) return const Divider();
                final index = i ~/ 2+1;
                return _boxs(index) ;
              }
          ),

        ),
      ),
    );
  }
}

หรือว่าผมต้องทำเป็น Classแต่ละ Class แยกเลยครับ:grimacing::scream: