본문 바로가기

안드로이드 공부 노트/Compose(컴포즈)11

[Android-Compose] 안드로이드 컴포즈 애니메이션 예제와 함께 알아보기!(animateColorAsState, AnimatedVisibility, fadeIn, fadeOut ) 이번 공부 포스팅은 컴포즈 애니메이션에 대해 간단하게 알아보겠다. # animateColorAsState 우선 이 컴포저블 함수는 이름에서도 알 수 있다시피 Color에 관련한 애니메이션 함수이다. 인자로는 targetValue, animationSpec, label, finishedListener 4가지가 들어가야 한다. 그중 우리가 여기서 볼 거는 targetValue이다 이 인자에는 바꾸고 싶은 색상을 넣으면 된다. 나머지 인자들은 옵션이기 때문에 더 자세히 알고 싶으시면 따로 검색을 하는 걸 추천한다. 반환은 State 로 되기 때문에 by를 통해 값을 받아오는 게 깔끔하고 좋다 아래는 animateColorAsState의 유무의 차이이다. 사람에 따라서는 차이가 없다고 느낄 수도 있지만 작은 디.. 2024. 1. 12.
[Android-Compose] 안드로이드 컴포즈 rememberLauncherForActivityResult(registerForActivityResult)사용법 이번 포스팅은 XML에서 액티비티끼리 데이터를 주고받을 때 사용하는 registerForActivityResult를 Compose에서 사용하는 방법을 공부해 보겠다! 만약 프로젝트 구성을 Compose Only면 필요 없을지도 모르지만 XML + Compose을 혼합해서 사용한다면 Compose -> Acltitly -> 원래 Compose로 데이터를 전달해야 할 경우가 생긴다. 이럴 경우 어떤 식으로 해결하는지 아래 예제로 알아보자! # 사용법 공식 문서에서 보면 이미지를 가져오는 예제가 있다. 보통 예제는 권한을 확인하거나 공식 문서처럼 이미지를 가져오는 예제이다. 여기서는 간단한 데이터를 가져오는 예제를 할 것이다. 예제의 순서를 설명하자면 1. Composable 함수인 A Screen에서 Act.. 2023. 9. 27.
[Android-Compose] 안드로이드 컴포즈 스크롤 중 탭 고정 스티키 헤더(stickyHeader) 사용법 이번 공부해 볼 내용은 아래 영상과 같이 스크롤중 탭, text 등 고정을 해야 하는 경우가 있을 것이다. 처음에는 구현할때 어떤 식으로 검색해야 할지 몰라서 헤맸다. 그래서 나 처럼 헤매지 말라고 이 글의 제목을 풀어서 적어봤다. 오늘 할 예제는 아래 영상과 같이 메뉴판을 예를 들어 각 음식의 종류가 헤더가 되어서 스크롤 시 고정되는 간단한 예제를 해보도록 하겠다. # stickyHeader 우선 컴포즈에서 위와 같이 스크롤시 고정된 헤더를 구현하려면 LazyColumn의 stickyHeader를 사용해야한다. 아래 공식문서에서도 stickyHeader를 사용하여 구현하라고 한다. 한 가지 참고할 점이 있다면 아직 실험용이라서 공식문서에서는 아래와 같이 말하고 있다. 그래서 사용 시 @OptIn(Exp.. 2023. 8. 27.
[Android-Compose]안드로이드 컴포즈 백 버튼/ 뒤로가기 처리 (onbackpressed) 이번 포스팅은 안드로이드 컴포즈에서 백 버튼/뒤로 가기 처리를 하는 방법을 알아보겠다. 얼마전 컴포즈로 만들고 있는 프로젝트에서 백 버튼/뒤로 가기 처리를 해야 하는 상황이 생겼다. 기존 XML이였으면 onbackpressed override 해서 처리했을 텐데 컴포즈에서는 그런 방법이 안돼서 구글링을 해보았다. 그랬더니 생각보다 정말 간단했다! 바로 아래 코드 처럼 BackHandler를 호출해 스코프 안에서 하고 싶은 작업을 처리하면 된다. @Composable fun TestScreen(){ BackHandler { // todo Back버튼 처리 로직 } // todo Code } 2023. 7. 30.
[Android-Compose] Spacer를 이용해 간단한 선 만들기 이번 포스팅은 정말 간단한 포스팅이다. 개발 시 간단한 수직 선이나 수평선을 만들어야 할 때가 있다. 그럴 때 컴포즈에서는 어떤 식으로 처리하는지 알아보자! 우선 많은 방법들이 있지만 이번 예제에서는 Spacer()컴포저블 함수를 사용해 볼 것이다. Spacer함수는 보통 컴포넌트 간의 공간을 만들고, 레이아웃의 일부 영역을 비워두기 위한 용도로 사용하는데 간단한 선도 만들 수 있다. 그럼 아래 예제를 통해 어떤 식으로 만드는지 알아보자! # 수직 선 만들기 // 너비가 1dp인 수직선 만들기 Spacer(modifier = Modifier .width(1.dp) .fillMaxHeight() .background(Color.Black) ) 이런 식으로 width값을 주어 간단한 수직선을 만들 수 있다... 2023. 5. 25.
[Android-Compose] 안드로이드 컴포즈 Text HyperLink (텍스트 하이퍼링크) 적용하기 이번 공부 노트는 Android-Compose에서 텍스트 내용 중 하이퍼링크를 적용하는 법을 알아보겠다. 아래 코드는 스택오버플로우에서 구했는데 정확히 그 링크를 찾지 못하였다..ㅜㅜ # 적용 코드 import android.os.Build import android.text.SpannableString import android.text.style.URLSpan import android.text.util.Linkify import androidx.compose.foundation.gestures.detectTapGestures import androidx.compose.foundation.text.selection.SelectionContainer import androidx.compose.mater.. 2023. 1. 15.