📘 Post

    [Android] 컨텍스트 메뉴 Context Menu 만들기

    [Android] 컨텍스트 메뉴 Context Menu 만들기

    ⚠️ 2021.06.21에 작성된 글입니다 ⚠️ Context Menu란? 특정 항목이나 리사이클러뷰 각 항목에 대해 직접 작업을 수행할 수 있는 메뉴. 롱클릭시 메뉴가 나타난다. 주로 리사이클러뷰의 각 아이템에 대한 메뉴를 보이게 할 때 사용한다. 구현 순서 메뉴 레이아웃 만들기 컨텍스트 메뉴 구현하기 뷰를 컨텍스트 메뉴에 등록하기 컨텍스트 메뉴 생성하기 각 메뉴 아이템 클릭 시 동작 정의하기 메뉴 레이아웃 (menu_hello.xml) 1. 메뉴 디렉토리 생성하기 res > new > Android Resource Directory > menu 디렉토리 생성 2. 메뉴 레이아웃 생성하기 menu 디렉토리 안에 menu_hello.xml 생성 컨텍스트 메뉴 구현 메인 액티비티(activity_main...

    [Android] 하단 다이얼로그 BottomSheetDialog 구현하기

    [Android] 하단 다이얼로그 BottomSheetDialog 구현하기

    ⚠️ 2021.06.18에 작성된 글입니다 ⚠️ BottomSheetDialog란? 화면 하단에 붙어있는 다이얼로그. 아래처럼 여러 방식으로 구성할 수 있다. 구현 방법 BottomSheetDialog 객체 생성해서 만들기 커스텀 다이얼로그로 만들기 BottomSheetDialog를 상속해서 구현하기 BottomSheetDialogFragment를 상속해서 구현하기 BottomSheetDialog 객체 생성해서 구현하기 구현 순서 다이얼로그 레이아웃 만들기 뷰(activity, fragment)에서 bottomSheetDialog 생성하기 1. 다이얼로그 레이아웃 (dialog_content.xml) 2. 다이얼로그 생성 (MainActivity.kt) val dialog: BottomSheetDialo..

    [Android] 뷰바인딩 ViewBinding 적용하기

    [Android] 뷰바인딩 ViewBinding 적용하기

    ⚠️ 2021.06.12에 작성된 글입니다 ⚠️ 뷰바인딩이란 뷰 요소들을 묶어(bind)주는 것으로, 뷰 결합이라고도 한다. 뷰바인딩을 사용할 경우, 빌드과정에서 레이아웃(xml)의 뷰 아이디를 바인딩하는 클래스을 자동으로 만들어준다. 이를 사용해 findViewById를 사용하지 않고도 뷰를 참조할 수 있다. 코틀린의 경우, 레이아웃의 아이디값으로 바로 참조할 수 있는 synthetic이란 기능이 Android Studio 4.2 이후 지원하지 않게 되었다. 따라서 이를 대체하는 대안 중에 하나로 사용할 수 있다. 작업 순서 gradle 추가 view(Activity, Fragment)에서 binding 사용 gradle 추가 모듈 수준의 빌드 파일인 build.gradle (Module: ... .a..

    [Android] 키보드 높이 이용해 키보드 올리기, 내리기

    ⚠️ 2021.06.09에 작성된 글입니다 ⚠️ 키보드 관련 이전 포스팅 보기 👉 [Android] 키보드 표시하기, 숨기기 구현 순서 키보드 클래스 생성 (키보드 높이 구하는 메소드, 현재 키보드 보이는지 여부 반환하는 메소드) 뷰에서 키보드 제어 (showKeyboard, hideKeyboard) 키보드 클래스 키보드 높이를 구하기 위해서는, 다음과 같은 순서로 진행된다. 원래 뷰의 높이(a)를 구한다. 키보드가 올라왔을 때의 뷰 높이(b)를 구한다. a - b를 하여 키보드 높이를 알아낸다. import android.graphics.Rect import android.view.View class Keyboard { private var isKeyboardShowing: Boolean = false..

    [Android] 키보드 표시하기, 숨기기

    ⚠️ 2021.06.06에 작성된 글입니다 ⚠️ 구현 순서 키보드(입력창) 선언 키보드(입력창) 메소드 사용 OR 커스텀 메소드 만들기 키보드 선언 // activity private val keyboard: InputMethodManager by lazy { getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager } // fragment private val keyboard: InputMethodManager by lazy { activity?.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager } 메소드 사용 키보드(입력창)를 제어하는데에 주로 3가지의 메소드를 사용한다. toggleSoft..

    [Error][Android] Facebook log-in:Manifest merger failed

    [Error][Android] Facebook log-in:Manifest merger failed

    ⚠️ 2021.01.25에 작성된 글입니다 ⚠️ 문제상황 페이스북 소셜로그인을 추가하던 중, 빌드를 시작하면 빌드가 실패하는 문제가 생겼다. Manifest merger failed : Attribute meta-data#com.facebook.sdk.ApplicationId@value value=(@string/facebook_app_id) from AndroidManifest.xml:53:13-52 is also present at [com.firebaseui:firebase-ui-auth:6.4.0] AndroidManifest.xml:21:13-60 value=(@string/facebook_application_id). Suggestion: add 'tools:replace="android:va..