
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
플러터 2-7 다양한 피드 이미지 보여주기에서
그전까지는 모두 맞게 실행되었는데. 마지막
child: Feed(imageUrl: image), // imageUrl 전달
코드 스니펫을 복사후 실행시 각기 다른이미지가 보여지지 않네요.
feed.dart 코드 에러인걸로 확인 되는데, 밑에 feed.dart 어디 부분이 에러인가요?

작성한 코드 및 에러 메세지
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'feed.dart';
class HomePage extends StatelessWidget {
const HomePage({super.key});
@override
Widget build(BuildContext context) {
final List<String> images = [
"https://cdn2.thecatapi.com/images/6bt.jpg",
"https://cdn2.thecatapi.com/images/ahr.jpg",
"https://cdn2.thecatapi.com/images/arj.jpg",
"https://cdn2.thecatapi.com/images/brt.jpg",
"https://cdn2.thecatapi.com/images/cml.jpg",
"https://cdn2.thecatapi.com/images/e35.jpg",
"https://cdn2.thecatapi.com/images/MTk4MTAxOQ.jpg",
"https://cdn2.thecatapi.com/images/MjA0ODM5MQ.jpg",
"https://cdn2.thecatapi.com/images/AuY1uMdmi.jpg",
"https://cdn2.thecatapi.com/images/AKUofzZW_.png",
];
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.white,
elevation: 0.5,
leading: Row(
children: [
SizedBox(width: 16),
Text(
'중앙동',
style: TextStyle(
color: Colors.black,
fontWeight: FontWeight.bold,
fontSize: 20,
),
),
Icon(
Icons.keyboard_arrow_down_rounded,
color: Colors.black,
),
],
),
leadingWidth: 100,
actions: [
IconButton(
onPressed: () {},
icon: Icon(CupertinoIcons.search, color: Colors.black),
),
IconButton(
onPressed: () {},
icon: Icon(Icons.menu_rounded, color: Colors.black),
),
IconButton(
onPressed: () {},
icon: Icon(CupertinoIcons.bell, color: Colors.black),
),
],
),
body: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: ListView.separated(
itemCount: images.length, // 이미지 개수만큼 보여주기
itemBuilder: (context, index) {
final image = images[index]; // index에 해당하는 이미지
return Padding(
padding: const EdgeInsets.symmetric(vertical: 12),
child: Feed(imageUrl: image), // imageUrl 전달
);
},
separatorBuilder: (context, index) {
return Divider();
},
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {},
backgroundColor: Color(0xFFFF7E36),
elevation: 1,
child: Icon(
Icons.add_rounded,
size: 36,
),
),
bottomNavigationBar: BottomNavigationBar(
fixedColor: Colors.black,
unselectedItemColor: Colors.black,
showUnselectedLabels: true,
selectedFontSize: 12,
unselectedFontSize: 12,
iconSize: 28,
type: BottomNavigationBarType.fixed,
items: [
BottomNavigationBarItem(
icon: Icon(Icons.home_filled),
label: '홈',
backgroundColor: Colors.white,
),
BottomNavigationBarItem(
icon: Icon(Icons.my_library_books_outlined),
label: '동네생활',
),
BottomNavigationBarItem(
icon: Icon(Icons.fmd_good_outlined),
label: '내 근처',
),
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.chat_bubble_2),
label: '채팅',
),
BottomNavigationBarItem(
icon: Icon(
Icons.person_outline,
),
label: '나의 당근',
),
],
currentIndex: 0,
),
);
}
}
=========================Feed Code===========================
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class feed extends StatefulWidget {
const feed({
super.key,
required this.imageUrl,
});
final String imageUrl; // 이미지를 담을 변수
@override
State<feed> createState() => _feedState();
}
class _feedState extends State<feed> {
// 좋아요 여부
bool isFavorite = false;
@override
Widget build(BuildContext context) {
return Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// CilpRRect 를 통해 이미지에 곡선 border 생성
ClipRRect(
borderRadius: BorderRadius.circular(8),
// 이미지
child: Image.network(
widget.imageUrl, // 10번째 줄의 imageUrl 가져오기
width: 100,
height: 100,
fit: BoxFit.cover,
),
),
SizedBox(width: 12),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'M1 아이패드 프로 11형(3세대) 와이파이 128G 팝니다.',
style: TextStyle(
fontSize: 16,
color: Colors.black,
),
softWrap: false,
maxLines: 2,
overflow: TextOverflow.ellipsis,
),
SizedBox(height: 2),
Text(
'봉천동 · 6분 전',
style: TextStyle(
fontSize: 12,
color: Colors.black45,
),
),
SizedBox(height: 4),
Text(
'100만원',
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold,
),
),
Row(
children: [
Spacer(),
GestureDetector(
onTap: () {
// 화면 갱신
setState(() {
isFavorite = !isFavorite; // 좋아요 토글
});
},
child: Row(
children: [
Icon(
isFavorite
? CupertinoIcons.heart_fill
: CupertinoIcons.heart,
color: isFavorite ? Colors.pink : Colors.black,
size: 16,
),
Text(
'1',
style: TextStyle(color: Colors.black54),
),
],
),
)
],
),
],
),
),
],
);
}
}
