Professional Documents
Culture Documents
안드로이드
앱 프로그래밍
with 코틀린
11
제트팩 라이브러리
11-1 제트팩과 androidx 소개
11-2 appcompat 라이브러리 – API 호환성 해결
11-3 프래그먼트 – 액티비티처럼 동작하는 뷰
11-4 리사이클러 뷰 – 목록 화면 구성
11-5 뷰 페이저2 – 스와이프로 넘기는 화면 구성
11-6 드로어 레이아웃 – 옆에서 열리는 화면 구성
11-7 제트팩을 이용해 화면 구성하기
11-1 제트팩과 androidx 소개
플랫폼 API
메뉴는 액션바의 중요한 구성 요소로 액티비티 화면에서 사용자 이벤트를 사용할 수 있도록 합니다.
액티비티에 메뉴를 추가하고 싶다면 onCreateOptionsMenu()와 onPrepareOptionsMenu() 함수를 이용
onCreateOptionsMenu() 함수는 액티비티가 실행되면서 처음에 한 번만 호출
onPrepareOptionsMenu() 함수는 액티비티가 실행되면서 한 번 호출된 후 오버플로 메뉴가 나타날 때마다 반복해서
호출
11-2 appcompat 라이브러리
11-2 appcompat 라이브러리
메뉴를 사용자가 선택했을 때의 이벤트 처리는 onOptionsItemSelected() 함수를 이용
함수의 매개변수는 이벤트가 발생한 메뉴 객체인 MenuItem
11-2 appcompat 라이브러리
리소스로 메뉴 구현
메뉴를 구성하는 XML 파일은 res 폴더 아래 menu 디렉터리에 만듭니다.
11-2 appcompat 라이브러리
액션바에 아이콘으로 나타나게 하려면 showAsAction 속성을 이용
never(기본): 항상 오버플로 메뉴로 출력합니다.
ifRoom: 만약 액션바에 공간이 있다면 액션 아이템으로, 없다면 오버플로 메뉴로 출력합니다.
always: 항상 액션 아이템으로 출력합니다.
11-2 appcompat 라이브러리
액션 뷰 이용
액션 뷰는 액션바에서 특별한 기능을 제공하며 대표적으로 androidx.appcompat.widget.SearchView가 있습니다.
11-2 appcompat 라이브러리
SearchView를 등록한 MenuItem 객체를 얻고 MenuItem 객체에 등록된 SearchView 객체를 구하면 됩니다.
11-2 appcompat 라이브러리
툴바
액션바는 액티비티 창이 자동으로 출력하는 액티비티의 구성 요소지만, 툴바는 개발자가 직접 제어하는 뷰라는 데
차이점
11-2 appcompat 라이브러리
레이아웃 XML 파일에 다음처럼 Toolbar를 등록
11-2 appcompat 라이브러리
호환성을 고려한 기본 뷰 클래스
구성 요소
ViewHolder(필수): 항목에 필요한 뷰 객체를 가집니다.
Adapter(필수): 항목을 구성합니다.
LayoutManager(필수): 항목을 배치합니다.
ItemDecoration(옵션): 항목을 꾸밉니다.
11-4 리사이클러 뷰 – 목록 화면 구성
뷰 홀더 준비
각 항목에 해당하는 뷰 객체를 가지는 뷰 홀더는 RecyclerView.ViewHolder를 상속받아 작성
어댑터 준비
각 항목을 만들어 주는 역할
11-4 리사이클러 뷰 – 목록 화면 구성
getItemCount(): 항목 개수를 판단하려고 자동으로 호출됩니다.
onCreateViewHolder(): 항목의 뷰를 가지는 뷰 홀더를 준비하려고 자동으로 호출됩니다.
onBindViewHolder(): 뷰 홀더의 뷰에 데이터를 출력하려고 자동으로 호출됩니다.
11-4 리사이클러 뷰 – 목록 화면 구성
리사이클러 뷰 출력
11-4 리사이클러 뷰 – 목록 화면 구성
항목을 동적으로 추가 · 제거
항목을 구성하는 데이터에 새로운 데이터를 추가하거나 제거한 후 어댑터의 notifyDataSetChanged() 함수를 호출
11-4 리사이클러 뷰 – 목록 화면 구성
레이아웃 매니저
리사이클러 뷰 어댑터 이용
11-5 뷰 페이저2 – 스와이프로 넘기는 화면 구성
프래그먼트 어댑터 이용
프래그먼트로 작성했으면 FragmentStateAdapter로 뷰 페이저2를 구현
11-6 드로어 레이아웃 – 옆에서 열리는 화면 구성
레이아웃 XML 파일에서 드로어 메뉴가 출력되어야 하는 부분의 태그를 DrawerLayout으로 선언합니다.
DrawerLayout 아래에는 뷰를 2개 선언
첫 번째 하위 태그 부분을 액티비티 화면에 출력
두 번째 하위 태그 부분이 안 보이다가 끌려 나옵니다.
11-6 드로어 레이아웃 – 옆에서 열리는 화면 구성
툴바 영역에 토글toggle 버튼을 함께 제공
토글 버튼은 ActionBarDrawerToggle 클래스에서 제공
제트팩을 이용한 화면구성하기
1단계. 새 모듈 생성하기
뷰 바인딩을 위한 설정
MainActivity.kt 파일을 열고 작성
11단계. 앱 실행하기
감사합니다
단단히 마음먹고 떠난 사람은
산꼭대기에 도착할 수 있다.
산은 올라가는 사람에게만 정복된다.
윌리엄 셰익스피어
William Shakespeare