커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
플로팅 버튼 내에 Navigator.push 코드 추가 설명 요청
[왕초보] 플러터(Flutter)로 시작하는 앱개발 종합반 v0
3주차
북마크
박*라
댓글
1
추천
0
조회수
5
조회수
5
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


라우터 내에서 (_) 이 의미 하는게 무엇인가요?

"builder: (_) => DetailPage..."



스파르타 즉문즉답




작성한 코드 및 에러 메세지

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'detail.dart';


class Home extends StatefulWidget {
  const Home({super.key});


  @override
  State<Home> createState() => _HomeState();
}


class _HomeState extends State<Home> {
  // Field
  List<String> memoList = ['장보기 목록: 사과, 양파', '새 메모']; // 전체 메모 목록


  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        elevation: 10,
        title: const Text('My Memo'),
      ),
      body: memoList.isEmpty
          ? const Center(child: Text("메모를 작성해 주세요"))
          : ListView.builder(
              itemCount: memoList.length, // memoList 개수 만큼 보여주기
              itemBuilder: (context, index) {
                String memo = memoList[index]; // index에 해당하는 memo 가져오기
                return ListTile(
                  // 메모 고정 아이콘
                  leading: IconButton(
                    icon: const Icon(CupertinoIcons.pin),
                    onPressed: () {
                      print('$memo : pin 클릭 됨');
                    },
                  ),
                  // 메모 내용 (최대 3줄까지만 보여주도록)
                  title: Text(
                    memo,
                    maxLines: 3,
                    overflow: TextOverflow.ellipsis,//오버플로우에서 말줄임하기
                  ),
                  onTap: () {
                    // 아이템 클릭시
                    Navigator.push(
                      context, 
                      MaterialPageRoute(builder: (_) => DetailPage(
                        memoList: memoList, 
                        index: index
                        )
                      ),
                    );                    
                  },
                );
              },
            ),      


      //** 플로팅 버튼 */
      floatingActionButton: FloatingActionButton(
        child: const Icon(Icons.add),
        onPressed: (){
          // + 버튼 클릭 시 메모 생성 및 수정 페이지로 이동
          String memo = '';
          setState(() {
            memoList.add(memo);
          });
          Navigator.push(
            context, 
            MaterialPageRoute(
              builder: (_) => DetailPage(
                index: memoList.indexOf(memo),
                memoList: memoList, 
                )
              ),
          );
        } 
      ),
    );
  }
}
취소
 공유
취소
댓글 0
댓글 알림
나의얼굴