inflearn logo
강의

Course

Instructor

Coding Netflix UI Clone with Flutter + Firebase [Just Flutter]

Add an Image Carousel Slider Widget to your Home Screen

포스터 이미지 삽입했는데 오류뜨네요..

546

gmuffiness0487

2 asked

0

권태뽕님과 똑같이 클론 코딩했는데 에러가 뜨네요..ㅠ

구글링 해봤더니 indentation은 잘 되어있었고  터미널에 flutter clean 명령은 효과가 없었네요.. 어떤 문제때문에 발생하는 오류일까요?!

Flutter firebase 클론코딩

Answer 4

0

halfwing1998

아마 이렇게 넣으면 이미지가 잘 나올 것입니다 참고 바랍니다

 images = movies?.map((m) => Image.asset('../images/'+m.poster)).toList();

0

taebbong

안녕하세요! 강의 들어주셔서 감사합니다:)

파이어베이스와 연동하기 전 예제의 경우 m.poster의 값에 이미지 이름만 들어가 있습니다..! 따라서 해당 실습에서는 'images/' + m.poster의 형태로 이미지를 불러오셔야 정상적으로 참조가 될 것 입니다.

더 깔끔히 코드를 작성했으면 헷갈리지 않으셨을텐데 미흡하게 하여 죄송합니다ㅠㅠ

0

gmuffiness0487

따라치며 클론해본 CarouselImage 클래스 입니다.

import 'package:carousel_slider/carousel_slider.dart';
import 'package:flutter/material.dart';
import 'package:netflix_clone_practice/model/movie_model.dart';

class CarouselImage extends StatefulWidget {
  final List<Movie> movies;
  CarouselImage({this.movies});
  @override
  _CarouselImageState createState() => _CarouselImageState();
}

class _CarouselImageState extends State<CarouselImage> {
  List<Movie> movies;
  List<Widget> images;
  List<String> keywords;
  List<bool> likes;
  int _currentPage = 0;
  String _currentKeyword;
  @override
  void initState() {
    super.initState();
    movies = widget.movies; // Q. 여기서 widget은 어디로부터 온 것일까?
    images = movies.map((m) => Image.asset(m.poster)).toList();
    keywords = movies.map((m) => m.keyword).toList();
    likes = movies.map((m) => m.like).toList();
    _currentKeyword = keywords[0];
  }

  Widget build(BuildContext context) {
    return Container(
      child: Column(
        children: <Widget>[
          Container(
            padding: EdgeInsets.all(20),
          ),
          CarouselSlider(
            items: images,
            options: CarouselOptions(
              onPageChanged: (index, reason) {
                setState(() {
                  _currentPage = index;
                  _currentKeyword = keywords[_currentPage];
                });
              },
            ),
          ),
          Container(
            padding: EdgeInsets.fromLTRB(01003),
            child: Text(
              _currentKeyword,
              style: TextStyle(fontSize: 11),
            ),
          ),
          Container(
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: <Widget>[
                Container(
                  child: Column(
                    children: <Widget>[
                      likes[_currentPage]
                          ? IconButton(
                              icon: Icon(Icons.check),
                              onPressed: () {},
                            )
                          : IconButton(
                              icon: Icon(Icons.add),
                              onPressed: () {},
                            ),
                      Text(
                        '내가 찜한 콘텐츠',
                        style: TextStyle(fontSize: 11),
                      )
                    ],
                  ),
                ),
                Container(
                  padding: EdgeInsets.only(right: 10),
                  child: FlatButton(
                    color: Colors.white,
                    onPressed: () {},
                    child: Row(
                      children: <Widget>[
                        Icon(
                          Icons.play_arrow,
                          color: Colors.black,
                        ),
                        Padding(
                          padding: EdgeInsets.all(3),
                        ),
                        Text(
                          '재생',
                          style: TextStyle(color: Colors.black),
                        ),
                      ],
                    ),
                  ),
                ),
                Container(
                  padding: EdgeInsets.only(right: 10),
                  child: Column(
                    children: <Widget>[
                      IconButton(
                        icon: Icon(Icons.info),
                        onPressed: () {},
                      ),
                      Text(
                        '정보',
                        style: TextStyle(fontSize: 11),
                      ),
                    ],
                  ),
                ),
              ],
            ),
          ),
          Container(
            child: Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: makeIndicator(likes, _currentPage),
            ),
          ),
        ],
      ),
    );
  }
}

List<WidgetmakeIndicator(List list, int _currentPage) {
  List<Widget> results = [];
  for (var i = 0; i < list.length; i++) {
    results.add(
      Container(
        width: 8,
        height: 8,
        margin: EdgeInsets.symmetric(vertical: 10.0, horizontal: 2.0),
        decoration: BoxDecoration(
          shape: BoxShape.circle,
          color: _currentPage == i
              ? Color.fromRGBO(2552552550.9)
              : Color.fromRGBO(2552552550.4),
        ),
      ),
    );
  }
  return results;
}

0

gmuffiness0487

뒷 강의까지 진행해보았는데 CircleSlider로는 정상적으로 이미지 출력이 되는데 CarouselImage에서 오류가 있는걸까요?..

home screen에 찜하기가 바로 업데이트가 안되는 현상

0

298

1

로고 이미지가 안불러와져요

1

556

1

firebase 설치이후 디버깅하면 아래와 같은 에러가 발생하는데 알려주실분 계실까요?

0

1510

1

TabController controller를 넣게되면 오류가 나고 late를 넣으면 정상으로 작동되는데 이유를 알 수 있을까요?

0

739

1

CarouselImage문제

0

521

1

22.12.11 carousel_slider 문의 드려요..

0

817

1

왜 버튼들이 세로로 정렬될까요..ㅜㅜ

0

422

1

firebase 프로덕트 모드로 진행했는데, 홈화면이 안뜹니다... ㅜ

0

465

1

circle_silder 와 box_slider 에 이미지가 한개만 나옵니다.

0

369

0

firebase 적용후 디버깅시

0

2142

3

url_launcher 의존성 추가시 빌드 불가 에러

1

336

0

220614 carousel_slider.dart

1

675

1

FirebaseFrirestroe 사용시 아래코드로 하시면 됩니다.

5

795

4

M1에서는 안되는가 봅니다..?

0

318

0

상세 페이지 코딩 입력햇는데요 안나와서요 ㅠㅜ 한번 봐주세요

0

334

1

이 부분 누가 해석좀 해주세요...

0

415

1

Container 한번더 감싼 이유

1

363

1

기기별 찜하기 기능 표시

1

412

0

({this.movies}); 에서 movies가 에러나는 이유를 모르겠습니다 ㅠㅠ

1

1015

10

widget.movie.like는 뭘 의미하는 것일까요?

0

240

0

fire base core 오류???

0

457

1

2021.03.17일 기준입니다

10

633

6

FlatButton이 안쓰이는 클래스가 되어서 이렇게 바꿔봤어요

5

628

2

강사님하고 똑같이 한거 같은데 .

0

298

1