Android10 [Android] Compose를 이용해 Swipe 기능 만들기 https://medium.com/@tellingme/android-compose%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4-swipe-%EA%B8%B0%EB%8A%A5-%EB%A7%8C%EB%93%A4%EA%B8%B0-cf088bb3c861 [Android] Compose를 이용해 Swipe 기능 만들기 안녕하세요. 텔링어스팀의 Frontend / Android 개발자 Siegfried(지크프리트) 줄여서 Sieg입니다. medium.com 제가 활동하고 있는 팀 블로그에 작성한 포스팅과 동일한 내용입니다. 앵커 스와이프 축을 따라 화면에 존재하는 고정된 위치를 의미합니다. 두 앵커 사이의 한 지점은 임계점(Threshold)으로 선언됩니다. 스와이프 모션이 임계점에 도달하기 전.. 2024. 2. 9. [Android][Compose] 부모요소의 높이를 최대높이로 지정하기, 동적 높이 계산하기 컴포즈의 규칙 중 하나는 하위 요소를 한번만 측정해야 한다는 것 두 번 측정하면 런타임 예외가 발생한다. 그러나 '내장기능' 을 사용하면 하위 요소가 실제로 측정되기 전에 하위 요소를 쿼리할수 있다. (min|max)IntrinsicWidth // 이 높이에서 콘텐츠를 적절하게 그릴 수 있는 최소/최대 너비 (min|max)IntrinsicHeight // 이 너비에서 콘텐츠를 적절하게 그릴 수 있는 최소/최대 높이 위의 내장 기능을 사용하면 컴포저블에게 최대/최소 width, height를 가져올 수있게 된다. 이 기능을 사용해 동적 너비/높이에 의존하는 레이아웃이 있는 경우 컨텐츠가 설정 된 후에 너비/높이의 값을 얻을 수 있게된다. 예시 #1 Column 컴포즈안에 Hello World라는 텍스트가.. 2024. 2. 9. [Android] Compose NavController 이용해 데이터를 다른화면에 넘기는 방법 feat. currentBackStackEntry, savedStateHandle, parcelize Compose의 NavController와 Parcelize를 이용해 라우팅 시 스크린간에 데이터 전달을 구현해볼 예정이다. 우선 코틀린에서 데이터를 직렬화하는 방법인 parcelize를 build.gradle(:app)에 추가한다. // build.gradle(:app) plugins { ... id("kotlin-parcelize") } ... Parcelize를 사용하는 이유는 NavBackStackEntry의 SavedStateHandle을 사용하므로 모든 결과는 Bundle에 배치할수 있어야하기때문이다. Bundle클래스를 확인해보면 Parcelable인터페이스의 구현체이다. Parcelable 또는 Serializable이 아닌 맞춤 타입의 결과를 저장하려면 이전 NavBackStackEntr.. 2024. 1. 1. Jetpack Compose - ViewModel ViewModel을 이용하면 rember를 사용하지않고도 상태를 변경하고 유지할수 있다. 가능한 이유는 ViewModel이 Activity와 라이프사이클을 함께 하기 때문이다. 데이터를 변경하면 다시 그려지게된다. remember를 사용하지 않으면 데이터가 다시 원래대로 돌아간다. by 키워드는 코틀린의 deletegateProperty를 활용해서 setter와 getter를 재정의 해둔것이다. 기존 viewModel을 사용하는 방법 ... class MainActiviy : ComponentActivity() { private val viewModel = by viewModels() // 기존 안드로이드 뷰모델 사용법과 동일 override fun onCreate(savedInstanceState: B.. 2023. 12. 14. 이전 1 2 3 다음