SANDY

Jetpack Compose @Composable 함수 안에서 Context 사용하기 본문

Android/Compose

Jetpack Compose @Composable 함수 안에서 Context 사용하기

SANDY-9 2024. 3. 10. 12:13

위 처럼 Activity나 Fragment 같은 View클래스 내에서는 View의 Context를 참조해서 사용할 수 있지만,
외부의 @Composable 함수 내부에서는 View 의 Context를 참조할 수 가 없다.

안드로이드 개발을 하다보면 Context를 참조해야 하는 일이 많다.
그렇다면 Composable 함수 내에서는 Context를 어떻게 사용해야할까?

 

간단하다. @Composable 함수 내에서 LocalContext를 사용해 현재의 Context를 가져올 수 있다.

val context = LocalContext.current

 

# 주의점 : @Composable 함수의 scope 내에서만 LocalContext를 활용해 Context를 참조할 수 있다.

잘못된 예시)

@Composable 함수의 scope가 아니다 clickable{ } 람다 함수의 스코프 내의 범위에서 LocalContext.current를 가져오려고 했으므로 당연히 가져올 수 없다고 밑줄이 생긴다.

이런 식으로 @Composable함수의 scope 내에서 LocalContext.current값을 얻으면 된다.

 

Compose의 장점인 것 같다. Context를 함수의 파라미터로 외부에서 주입받지 않아도 Context를 사용할 수 있다.

 

Comments