커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
스스로 해결
메모의 입력창이 비활성화되어 있습니다.
[왕초보] 플러터(Flutter)로 시작하는 앱개발 종합반 v0
3주차
북마크
김*지
댓글
2
추천
0
조회수
9
조회수
9
스스로 해결

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

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


수업 따라서 하는 중인데, 메모장에 입력을 해서 print로 출력하는 부분 하려고 하는데

메모장에 입력이 안 됩니다. 제가 어떤 부분을 놓쳤거나 설정이 잘못된 걸까요?



스파르타 즉문즉답




작성한 코드 및 에러 메세지


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("메모를 작성해 주세요"))

: 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 = ''; // 빈 메모 내용 추가

setState(() {

// 내용 추가하면서 새로고침해라

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) {

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

print(value);

},

),

),

);

}

}


오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.

Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.

Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!




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