커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
마이메모 앱 만들기 중 잘 안되는 부분이 있습니다ㅠㅠ
앱개발 종합반 - 플러터 v8
0주차
북마크
이*연
댓글
5
추천
0
조회수
11
조회수
11
답변 완료

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

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


강의에서 29번째 줄에 있는 memoList에 내용이 없이 저장을 하면 에뮬레이터에 '메모를 작성해 주세요'라는 문구가 나온다길래 해봤는데 '메모가 존재합니다!'라는 문구만 뜹니다.

다른건 만진건 없고, 코드스니펫에서 복붙만 하고 memoList의 값을 지워보기만 했습니다.

memoList에 내용이 없을 때 '메모를 작성해 주세요'라는 문구가 나왔으면 좋겠는데 어떻게 하면 좋을까요?



1.memoList에 내용 있음

스파르타 즉문즉답

2.memoList에 내용 없음

스파르타 즉문즉답




작성한 코드 및 에러 메세지

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


void main() {
  runApp(const MyApp());
}


class MyApp extends StatelessWidget {
  const MyApp({super.key});


  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: HomePage(),
    );
  }
}


// 홈 페이지
class HomePage extends StatefulWidget {
  const HomePage({super.key});


  @override
  State<HomePage> createState() => _HomePageState();
}


class _HomePageState extends State<HomePage> {
  List<String> memoList = []; // 전체 메모 목록


  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("mymemo"),
      ),
      body: memoList.isEmpty
          ? Center(child: Text("메모를 작성해 주세요"))
          : Center(child: Text('메모가 존재합니다!')),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () {
          // + 버튼 클릭시 메모 생성 및 수정 페이지로 이동
          Navigator.push(
            context,
            MaterialPageRoute(builder: (_) => DetailPage()),
          );
        },
      ),
    );
  }
}


// 메모 생성 및 수정 페이지
class DetailPage extends StatelessWidget {
  DetailPage({super.key});


  TextEditingController contentController = TextEditingController();


  @override
  Widget build(BuildContext context) {
    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
댓글 알림
나의얼굴