본문 바로가기
Flutter/Flutter FAQ

Flutter 플러터 for 루프를 사용하여 위젯 목록 생성, Flutter for loop to generate list of widgets

by 베타코드 2023. 8. 11.
반응형

질문


이렇게 코드가 있지만 동적인 수의 자식을 표시하기 위해 정수 배열을 반복하도록하고 싶습니다:

return Container(
  child: Column(
    children: <Widget>[
      Center(
        child: Text(text[0].toString(),
            textAlign: TextAlign.center),
      ),
      Center(
        child: Text(text[1].toString(),
            textAlign: TextAlign.center),
      ),
    ],
  ),
)

text 변수는 여기서 문자열로 변환 된 정수의 목록입니다. 배열을 반복하고 'children'을 표시하기 위한 함수를 추가해보았지만 유형 오류가 발생했습니다. Dart와 Flutter에 익숙하지 않기 때문에 어떻게해야할지 모르겠습니다.


답변


이렇게 해볼 수 있습니다:

@override
  Widget build(BuildContext context) {
    List<int> text = [1,2,3,4];
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Container(
        child: Column(
          children: [
            for ( var i in text ) Text(i.toString())
          ],
        ),
      ),
    );

이것은 dart를 2.3 버전으로 업데이트 함에 따라 추가된 것입니다. 몇 가지 주요 변경 사항에 대해 이 기사에서 읽을 수 있습니다.

dart 2.3 이전에 제공된 다른 방법은 다음과 같습니다:

@override
  Widget build(BuildContext context) {
    List<int> text = [1,2,3,4];
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Container(
        child: Column(
          children: List.generate(text.length,(index){
            return Text(text[index].toString());
          }),
        ),
      ),
    );
반응형

댓글