커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
피드에서 하트 누르기가 안됩니다
[왕초보] 플러터(Flutter)로 시작하는 앱개발 종합반 v0
2주차
북마크
김*택
댓글
5
추천
0
조회수
12
조회수
12
답변 완료
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

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


중고나라 클론 코딩 중 피드에서 하트 누를때 하트 색 바뀌는게 코드를 똑같이 썼는데도 안됩니다.

하트의 위치가 살짝 더 밑으로 가 있는 것을 보아 코드에서 children: [] 이부분 인덴트가 이상하게 되있는거가 문제아닌가 싶습니다...

그래서 인덴트를 수정하고 싶은데 저장만 하면 또 이상하게 인덴트가 되버리네요...


스파르타 즉문즉답





import 'package:flutter/cupertino.dart';

import 'package:flutter/material.dart';




class Feed extends StatefulWidget {

const Feed({

super.key,

});




@override

State<Feed> createState() => _FeedState();

}




class _FeedState extends State<Feed> {

bool isFavorite = false;




@override

Widget build(BuildContext context) {

return Row(

crossAxisAlignment: CrossAxisAlignment

.start, // row(주축:가로)에 속하는 이미지와 텍스트를 전부 부축(세로) 기준 start 포인트로 밀착시킴

children: [

// CilpRRect 를 통해 이미지에 곡선 border 생성

ClipRRect(

borderRadius: BorderRadius.circular(8),

// 이미지

child: Image.network(

'https://cdn2.thecatapi.com/images/6bt.jpg',

width: 100,

height: 100,

fit: BoxFit.cover,

),

),




SizedBox(width: 12), // 물품 사진과 텍스트 사이에 빈공간 만들어주기 위함




Expanded(

// 자식위젯(칼럼)의 너비를 남은 공간 전체로 지정해줌

child: Column(

crossAxisAlignment: CrossAxisAlignment

.start, // 칼럼(주축:세로)에 속하는 텍스트들을 부축(가로) 기준 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: () {

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),
)
]))
])
]))
]);
}
}


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