영화 목록과 바로 가기 메뉴

Requirements

  • 뷰페이저를 이용해 영화 포스터를 좌우 스크롤하여 볼 수 있도록 만든다.
  • 바로가기 메뉴를 추가하고 위쪽에는 사용자 프로필, 아래쪽에는 메뉴가 보이도록 한다.
  • 앱을 실행했을 때 영화목록이 처음 보이도록 하고 영화를 선택하면 영화상세 화면으로 전환되도록 한다.

 

Activity

  • MovieListActivity
  • activity_movie_list.xml

Fragment

  • MovieLstFragment
  • fragmetn_movie_list.xml

ViewModel

  • MovieListViewModel

Menu

  • menu_nav.xml

Layout

  • nav_header.xml

Corrections

  • toolbar.xml -> appbar_main.xml: toolbar 라는 이름을 사용할 때 문제들이 생겨서 이름을 변경했다.

 

Comment

  • ArrayList 를 단일 데이터처럼 적용하려고 하면 제대로 동작하지 않아서 LiveData 와 List 를 따로 관리하도록 만들었다.
  • ViewPager 양 옆의 페이지들이 일부분 노출되도록 만들었다.

'애플리케이션 > Cinema' 카테고리의 다른 글

ViewPager2  (0) 2022.11.19
Cinema #2 한줄평 화면 전환 / 영화목록  (0) 2022.11.18
Cinema #1. 영화 상세 화면 / 좋아요  (0) 2022.11.16

ViewPager2로 프래그먼트 간 슬라이드

Goal

ViewPager2 객체로 화면을 슬라이드하는 방법을 알아보자.

ViewPager2 객체는 화면 슬라이드에 자동으로 애니메이션을 적용할 수 있다.

 

ViewPager2

  • 세로 방향 지원 
    android:orientation 속성을 통해 세로 페이징도 가능하다.
  • ViewPager2 는 수정 가능한 프래그먼트 컬렉션을 통해 페이징을 지원하며 기본 컬렉션이 변경되면 notifyDatasetChanged() 를 호출하여 UI 를 업데이트한다.

 

Adapter

어댑터 클래스에 FragmentStateAdapter 를 확장하면 생성자 매개변수에 관해 다음 옵션을 선택할 수 있다.

  • ViewPager2 객체가 있는 FragmentActivity 객체 또는 Fragment 객체.
    대부분의 경우 이 옵션을 사용하는게 좋다.
  • FragmentManager 객체 및 Lifecycle 객체.

RecyclerView.Adapater 에서 상속되는 뷰 기반 어댑터 클래스에는 생성자 매개변수가 필요하지 않다.

 

메소드 재정의

  • getItemCount(): Int
  • createFragment(position: Int): Fragment
    함수가 호출될 때마다 새 createFragment() 메서드가 인스턴스를 재사용하는 것이 아니라 항상 새 프래그먼트 인스턴스를 제공하는지 확인하세요.

1.한줄평 화면 전환

Requirements

  • 상세화면의  '작성하기 버튼' 클릭시 한줄평 작성하기 화면을 띄웠다가 돌아오는 기능
  • 상세화면의 '모두보기 버튼' 누르면 한줄평 모두보기 화면을 띄웠다가 돌아오는 기능

 

2. 한줄평 작성하기 

 

Activity

  • ReviewWriteActivity
  • activity_review_write.xml

Drawable

  • shape_review_write.xml
  • shape_btn_purprl_line.xml

theme.xml

  • textTitle 추가

 

3. 한줄평 모두보기

Activity

  • ReviewLookActivity
  • activity_review_look.xml
  • item_review.xml

strings.xml

  • save
  • cancel
  • review
  • write

theme.xml

  • ItemTextSmall
  • ItemTextMedium

dimens.xml

  • text_item_small
  • text_item_medium

 

Comment

  • DataBinding 사용으로 findViewById 없이 setOnClickListener 구현.

'애플리케이션 > Cinema' 카테고리의 다른 글

Cinema #3 영화 목록 / 바로 가기 메뉴  (0) 2022.11.20
ViewPager2  (0) 2022.11.19
Cinema #1. 영화 상세 화면 / 좋아요  (0) 2022.11.16

1. 영화 상세 화면

Requirements

  • 영화 상세 정보를 표시하기 위한 레이아웃을 만든다.

activity_main.xml

  • <layout> 최상위 태그로 data binding 사용.
  • <include> 로 appbar 추가.

toolbar.xml

  • <AppBar> 구현.

 

2. 좋아요

Requirements

  • 좋아요/싫어요 이미지를 터치했을 때 숫자가 바뀌고 이미지의 선택 상태도 바뀌어 표시되도록 한다.

MainViewModel.kt

  • fun onLike() - 좋아요 이미지를 터치하면 좋아요 카운트를 변경한다.
  • fun onunLike() - 싫어요 이미지를 터치하면 싫어요 카운트를 변경한다.

BindingAdapter.kt

  • app:likeIcon - 좋아요 이미지를 터치하면 상태에 맞는 이미지로 바뀐다.
  • app:unlikeIcon - 싫어요 이미지를 터치하면 상태에 맞는 이미지로 바뀐다.

 

Comment

데이터 바인딩

  • findViewById 를 사용하지 않아도 된다.
  • 데이터 변경 시 UI 가 자동으로 업데이트 된다
  • 액티비티에 작성하는 코드의 양이 줄어들었다

'애플리케이션 > Cinema' 카테고리의 다른 글

Cinema #3 영화 목록 / 바로 가기 메뉴  (0) 2022.11.20
ViewPager2  (0) 2022.11.19
Cinema #2 한줄평 화면 전환 / 영화목록  (0) 2022.11.18

+ Recent posts