코틀린48 [Android] 안드로이드 뷰 페이저2(ViewPager2)+탭 레이아웃(TabLayout) 예제를 통한 사용법 이번에는 사용하면 아주 편리한 뷰 페이저 2와 탭 레이아웃 사용법을 알아보겠다. # 뷰 페이저(ViewPager), 탭 레이아웃(TabLayout)이란? 카카오톡 뷰 메뉴로 예를 들자면 옆으로 스와이프를 해서 다음 화면을 보는 것을 뷰 페이저라고 한다. My뷰,발견,코로나19,잔여백신,카카오TV 상단 Tab 버튼이 탭 레이아웃이다. # 사용법 이번 예제에서는 아래 와 같은 예제를 만들어 보겠다. 보면 정말 간단하다 카카오톡과 같이 탭의 이름을 설정해주고, 스와이프를 해서 탭 레이아웃과 같이 넘어가도록 구현해보겠다. ## 의존성 추가 우선 이번 예제에서는 뷰 바인딩도 사용할 것이기 때문에 같이 추가해준다. 혹시 뷰 바인딩을 모르는 분이 있다면 여기를 눌러 공부하는 것을 추천한다. android { ... .. 2022. 3. 13. [Android]안드로이드 매니페스트(Manifest)란? - 개념,역할 오늘은 안드로이드의 앱의 필수 구성요소인 매니페스트에 대해 알아보자. # 매니페스트(Manifest)란? Android 빌드 도구, Android 운영체제 및 Google Play에 앱에 관한 필수 정보를 설명한다. 가장 상위 폴더에 AndroidManifest.xml이 있어야 하며, 이 정보는 앱이 실행되기 전에 시스템이 알아야 할 내용을 정의하고 있다. 안드로이드 공식 문서 에서는 다음과 같이 말하고 있다. ● 매니페스트 파일은 다른 여러 가지도 설명하지만 특히 다음과 같은 내용을 선언해야 합니다. - 앱의 고유한 식별자인 패키지 이름(일반적으로 코드의 네임스페이스와 일치). - 앱의 구성 요소(4대 컴포넌트 포함) - 앱이 시스템 또는 다른 앱의 보호된 부분에 액세스 하기 위해 필요한 권한 - 기기.. 2022. 3. 10. [Android]안드로이드 프래그먼트 종료(finish) 시키기 개발하다가 프래그먼트 안에서 회원 탈퇴 구현 시 내가 원하는 구현 방식은 마이페이지 -> 회원 탈퇴 -> 로그인 페이지 -> Back키 -> 어플 종료 이런 식으로 구현을 하려고 했다. 하지만 Back를 눌렀을 때 전에 있던 프래그먼트가 종료가 안되어서 프래그먼트를 종료 시켜야 할 상황이 생긴다. 액티비티에서는 finish()를 해주면 되지만 프래그먼트에서는 그냥 finish()를 쓰면 안 된다. # 해결 방법 class MypageFragment : Fragment() { private var mbinding: FragmentMypageBinding? = null private val binding get() = mbinding!! override fun onCreateView(inflater: Lay.. 2022. 3. 2. [Android]안드로이드 개발시 다크 모드 무시/해제 하기 이번에는 안드로이드 개발을 하다 보면 다크 모드가 자동으로 지원돼서 프로젝트가 생성이 된다. 다크 모드를 지원하지 않으려면 아래처럼 따라 하면 된다. # 해결방법 res -> values -> themes -> themes.xml(night) 파일을 수정하면 된다. 수정 전 코드 수정 후 코드 Theme.MaterialComponents.DayNight.DarkActionBar 에서 DayNight를 Light로 바꿔준다. 앱을 빌드 하면 다크 모드와 상관없이 Light 모드로 앱이 실행이 된다. 참고 자료 https://es1015.tistory.com/453 https://hanyeop.tistory.com/194 2022. 3. 1. Android Jetpack - 5편 ViewModel + DataBinding + LiveData 통합 사용법 이번에는 Android Jetpack - 4편에 설명한 Data Binding을 ViewModel + LiveData를 활용해서 구현해보겠다. 본인이 이해한 것이 정확하지 않을 수 있어서 참고만 하길 바란다. 예제로는 간단히 YouTube처럼 좋아요와 싫어요 개수를 구하고 총합계를 구하는 예제로 해보겠다. # 사용법 1. bulid.gradle (Module) 추가 android { ... dataBinding { enabled = true } } 2. ViewModel + LiveData 생성 package com.example.databinding_ex.viewmodel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewM.. 2022. 2. 24. Android Jetpack - 4편 데이터 바인딩(Data Binding)이란? 이번에는 DataBinding을 알아보자 # 데이터 바인딩(Data Binding)이란? 간단하게 말하자면 데이터와 뷰를 연결하는 작업을 레이아웃에서 처리할 수 있게 해주는 라이브러리이다. 말로만 설명하면 이해가 안 될 수도 있기 때문에 아래 예시를 보자 fun main() { var textView = findViewById(R.id.sample_text) textView.Text("Hello") } 원래는 텍스트뷰에 문자를 넣거나 변경하기 위해 코드상에서 집어넣는 작업을 해주었다. 그래서 Data Binding을 사용하면 코드를 작성하지 않고 레이아웃 파일에서 직접 데이터 바인딩 표현식을 사용하여 작성할 수 있다. 이렇게 하면 자연스레 액티비티에는 로직만을 위한 코드만 남게 되고 뷰와 관련된 작업은 .. 2022. 2. 20. 이전 1 ··· 3 4 5 6 7 8 다음