본문 바로가기

Compose4

[Jetpack Compose] Navigation Drawer와 TopAppBar 연결하기 자료가 많이 없어서 헤맸었기 때문에 이 부분도 정리해본다. 다 만들고 나서 정리를 하는 것이다 보니 중간중간에 갑자기 튀어나오는 부분이 있을 수 있다. 1. 일단 AppTopBar에 menu 버튼을 추가해보자. modifier 관련된 부분들은 [Jetpack Compose] nestedScroll connection 을 이용하여 스크롤 시에 AppTopBar를 사라졌다 보였다 하게 하기 에서 작업된 부분이다. Scaffold( modifier = Modifier.nestedScroll(nestedScrollConnection), topBar = { TopAppBar( title = { Text(stringResource(id = R.string.app_name)) }, modifier = Modifier.. 2023. 6. 3.
[Jetpack Compose] State와 DataStore 연결하기 https://developer.android.com/topic/libraries/architecture/datastore 앱 아키텍처: 데이터 영역 - Datastore - Android 개발자 | Android Developers 데이터 영역 라이브러리에 관한 이 앱 아키텍처 가이드를 통해 Preferences DataStore 및 Proto DataStore, 설정 등을 알아보세요. developer.android.com DataStore 라는것이 생겼다. 옛날에는 SharedPreference 라는 것을 썼었는데 더 모던해진 애로 이해하면 될 것 같다. 정확한 설명은 다음과 같다. Jetpack DataStore is a data storage solution that allows you to s.. 2023. 6. 3.
[Jetpack Compose] DarkMode 대응하기 이 글을 쓰게 된 계기는 다음과 같다. 안드로이드 개인 프로젝트를 하고 있는데 초기 기본설정에서 일반적인 것들은 처리 되었으나 스플래시 화면 (splash screen)과 상태바 (status bar) 만 dark mode가 적용이 되지 않았다. 인터넷에 있는 방법들은 아무리 해도 먹히지 않았다. 정보가 많지않아서 많이 헤맨만큼 다른 사람도 헤맬것이라 생각하여 정리해본다. 사실 결론은 안드로이드 스튜디오에서 jetpack 프로젝트로 생성하면서 자동 생성된 프로젝트 기본설정에서 잘못된 부분이 있어서 무엇을 해도 적용이 제대로 되지 않았던 것이였다. 안드로이드 12 이후로 변경된 splash screen에 대해서는 https://developer.android.com/develop/ui/views/launc.. 2023. 6. 3.
[Jetpack Compose] nestedScroll connection 을 이용하여 스크롤 시에 AppTopBar를 사라졌다 보였다 하게 하기 Gmail 앱의 경우 AppTopBar가 위와 같이 아래로 스크롤 할 경우에는 사라졌다가 위로 스크롤 할 경우에는 다시 보이게 처리가 되어있다. 나도 이렇게 처리하고 싶었어서 어떻게 구현해야하는지 찾아보려고 했는데 생각만큼 잘 나오지 않았어서 한참을 고생했다. 정확하게 이 기능을 뭐라 해야할지 모르겠어서 더 그랬을지도 모르겠다. 아무튼 이에 정리해본다. 아래 코드는 jetpack compose - material m3 기준으로 작성하였다. @OptIn(ExperimentalMaterial3Api::class) @Composable fun MainPage() { val topAppBarHeight = 64.dp val topAppBarHeightPx = with(LocalDensity.current) { .. 2023. 6. 3.