커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
새 메모가 안떠요
앱개발 종합반 - 플러터 v8
3주차
북마크
진*재
댓글
6
추천
0
조회수
33
조회수
33
답변 완료

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

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




여기서 핫리로드 했을때 강사님 화면처럼 핀이 안뜨네요




작성한 코드 및 에러 메세지

import 'package:flutter/cupertino.dart';

import 'package:flutter/material.dart';


void main() {

 runApp(const MyApp());

}


class MyApp extends StatefulWidget {

 const MyApp({super.key});


 @override

 State<MyApp> createState() => _MyAppState();

}


class _MyAppState extends State<MyApp> {

 @override

 Widget build(BuildContext context) {

  return MaterialApp(

   debugShowCheckedModeBanner: false,

   home: HomePage(),

  );

 }

}


// 홈 페이지

class HomePage extends StatelessWidget {

 const HomePage({super.key});


 @override

 Widget build(BuildContext context) {

  List<String> memoList = ['장보기 목록: 사과, 양파, ', '새 메모']; // 전체 메모 목록


  return Scaffold(

   appBar: AppBar(

    title: Text("mymemo"),

   ),

   body: memoList.isEmpty

     ? Center(child: Text("메모를 작성해 주세요"))

     : ListView.builder(

       itemCount: memoList.length, // memoList 개수 만큼 보여주기

       itemBuilder: (context, index) {

        String memo = memoList[index]; // index에 해당하는 memo 가져오기

        return ListTile(

         // 메모 고정 아이콘

         leading: IconButton(

          icon: Icon(CupertinoIcons.pin),

          onPressed: () {

           print('$memo : pin 클릭 됨');

          },

         ),

         // 메모 내용 (최대 3줄까지만 보여주도록)

         title: Text(

          memo,

          maxLines: 3,

          overflow: TextOverflow.ellipsis,

         ),

         onTap: () {

          // 아이템 클릭시

          Navigator.push(

           context,

           MaterialPageRoute(

            builder: (_) => DetailPage(

             index: index,

             memoList: memoList,

            ),

           ),

          );

         },

        );

       },

      ),

   floatingActionButton: FloatingActionButton(

    child: Icon(Icons.add),

    onPressed: () {

     // + 버튼 클릭시 메모 생성 및 수정 페이지로 이동

     String memo = ''; // 빈 메모 내용 추가

     memoList.add(memo);

     Navigator.push(

      context,

      MaterialPageRoute(

       builder: (_) => DetailPage(

        index: memoList.indexOf(memo),

        memoList: memoList,

       ),

      ),

     );

    },

   ),

  );

 }

}


// 메모 생성 및 수정 페이지

class DetailPage extends StatelessWidget {

 DetailPage({super.key, required this.memoList, required this.index});


 final List<String> memoList;

 final int index;


 TextEditingController contentController = TextEditingController();


 @override

 Widget build(BuildContext context) {

  contentController.text = memoList[index];


  return Scaffold(

   appBar: AppBar(

    actions: [

     IconButton(

      onPressed: () {

       // 삭제 버튼 클릭시

      },

      icon: Icon(Icons.delete),

     )

    ],

   ),

   body: Padding(

    padding: const EdgeInsets.all(16),

    child: TextField(

     controller: contentController,

     decoration: InputDecoration(

      hintText: "메모를 입력하세요",

      border: InputBorder.none,

     ),

     autofocus: true,

     maxLines: null,

     expands: true,

     keyboardType: TextInputType.multiline,

     onChanged: (value) {

      // 텍스트필드 안의 값이 변할 때

     },

    ),

   ),

  );

 }

}

취소
 공유
취소
댓글 0
댓글 알림
나의얼굴