[TIL] 2022-05-02 Flutter-#8

Jongdroid·2022년 5월 2일
0

TIL

목록 보기
8/24

진정 멍청이인가.. 리스트뷰 데이터를 계속 새로운 데이터를 받아오는 것에 너무 많은 시간을 낭비했다.
뭔가 마음이 급해서 코드 한 줄을 적더라도 깊게 생각하고, 이유가 있는 코드를 작성해야 하는데 바보짓을 했다.

각설하고!! 오늘은 리스트뷰를 다시 한번 돌아보도록 하자!!


각설탕이요? (죄송합니다...)


이전포스팅에서 리스트뷰를 간략히 살펴봤었죠! 제 기억력을 back 하고자! 다시 한번 짚어볼게요!
(바쁘신분은 하단 내용을 참고해주세요)

리스트뷰 복습

오늘 리스트뷰를 이야기하면서 중점을 둘 내용은 바로 '데이터' 입니다. 이 부분을 기억하시면서 보시면 더 좋을 것 같아요!

ListView(
          children: [
            Text("위젯 첫놈입니다."),
            Text("위젯 첫놈입니다."),
            --일부 생략--
  • 첫번째 방법
    • 리스트뷰를 만드는 가장 쉬운 방법이죠! Row() Coluwn() 위젯 처럼 children을 통해 위젯을 넣을 수 있어요.

 final items = ['손흥민', '케인', '메시', '음바페'];

  
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: ListView.builder(
            itemCount: items.length,
            itemBuilder: (BuildContext context, i){
              return Text(items[i]);
            }
			--일부 생략--
  • 두번째 방법

    • 만들어둔 list items의 index를 통해서 가져올 수 있습니다.
    • itemCount : ListView 아이템의 길이를 결정하는 친구에요.
      ( 4라고 입력할 수 있겠지만 사용자가 아이템을 추가하는 경우가 있을때는 값을 모르니 코드처럼 줄 수 있어요!)
    • items index가 1씩 증가하면서 items 리스트를 Text()를 통해서 뿌려줄거에요!

리스트뷰 데이터를 받아오고 싶을땐?

  • 세번째 방법 (제가 야심차게 준비한 방법(?)이에요
    • 데이터의 길이를 임의로 정하지 않고 싶을땐 어떻게 하는게 좋을까요? 예를들면 사용자에게 텍스트를 입력 받거나 버튼 클릭 시 텍스트를 가져오고 싶을땐 어떻게 할까요? 전 이렇게 해봤어요.
    • 가장 먼저 빈 list를 만들었어요.
    • 버튼 클릭 등 이벤트가 발생할때 add() 함수를 통해서 list에 입력을 했어요. 그럼 결국 list length가 늘어나겠죠?
    • 다음단계는 이 글을 읽고 시도하시는 분이 해보시길 바랄게요!! (정답은 밑에)








빈 리스트

final number = [];

버튼

ElevatedButton(
        child: Text('추가하기'),
        onPressed: () {
          number.add(1);
          setState((){});
        },

리스트뷰

ListView.builder(
              itemCount: number.length,
              itemBuilder: (BuildContext context, i){
                return Text('${number[i]}');
              }
          ),
profile
만드는 사람이 수고하면 쓰는 사람이 편하고 만드는 사람이 편하면 쓰는 사람이 수고롭다.

0개의 댓글