Android

안드로이드 개발 일상

  • Jetpack Compose | 밀어서 삭제 (SwipeToDismiss) 구현

    SwipeToDismiss(밀어서 삭제) 방식은 리스트에서 아이템을 삭제하거나, 좋아요나 플레이리스트 등 특정 그룹에 추가하는 기능을 구현할 때 용이하다. Jetpack Compose에서는 이를 쉽게 제작할 수 있도록 SwipeToDismiss 라는 Composable 함수를 지원한다. 작성 방법이 쉽기 때문에 금방 따라 작성할 수 있다. state : 앞선 코드에서 선언한 DismissState 에서 confirmStateChange 콜백 함수를 통해 SwipeToDismiss Composable 함수의 Dismiss 상태를 추적할 수…

    더보기


  • Jetpack Compose | Compose를 이용하는 BaseFragment

    Compose 도입 이전에도 Activity 와 Fragment, ViewModel 등 공동으로 적용되어야 하는 부분에 대해서 Base 클래스를 만들어왔다. 무엇보다도 Compose를 이용하여 UI를 구성 할 때, Theme를 일괄적으로 적용하기 위한 작업이 필요했다. Compose로 구성되는 Fragment의 BaseFragment 부모 클래스를 다음과 같이 작성해보았다. 기존 BaseFragment가 있기 때문에 이름은 ComposeBaseFragment 정도로 명명했다. 이 ComposeBaseFragment 를 상속해서 만든 Fragment 에서는 “Compose” Composable…

    더보기


  • Jetpack Compose | CoordinatorLayout 내 ComposeView 스크롤 문제

    다음과 같이 CoordinatorLayout의 자식으로 ComposeView를 가지게 되는 구성에서, ComposeView의 스크롤 이벤트를 의도대로 처리할 수 없다. CoordinatorLayout 과 해당 레이아웃 내의 ComposeView 간 스크롤 상호작용이 안되는 문제는 다음과 같이 해결 할 수 있다. 다음과 같이 제공되는 NestedScrollConnection를 생성하고, ComposeView 의 최상단 Composable에 nestedScroll 수정자를 통해 적용하여 문제를 해결한다. 중첩 스크롤 상호 운용성 > 하위 ComposeView를 포함하는…

    더보기