본문 바로가기
Android

Android FragmentContainerView Error

by kkong93 2023. 6. 16.
반응형

Compose를 연습하다가 다른 Activity에서 Navigation을 사용하려고 했는데 계속 Inflate오류가 발생했다.

 

`ComponentActivity`는 Jetpack Compose를 지원하기 위한 기본 Activity 클래스입니다. 이 클래스는 `AppCompatActivity`와는 달리 프래그먼트와 관련된 내장 메서드를 제공하지 않습니다. 따라서 `ComponentActivity`에서 `androidx.fragment.app.FragmentContainerView`를 사용하려면 몇 가지 추가 작업이 필요합니다. 일반적으로 `ComponentActivity`를 상속하는 경우에는 Compose를 사용하여 UI를 작성하는 것이 가장 일반적입니다. 그러나 `FragmentContainerView`와 같은 프래그먼트를 사용해야 하는 상황이라면, `AppCompatActivity` 또는 `FragmentActivity`를 사용하는 것이 더 적합합니다. 이 두 클래스는 프래그먼트와 관련된 메서드를 제공하며, `FragmentContainerView`와 같은 프래그먼트를 관리하는 데 필요한 기능을 제공합니다. 따라서 `SettingsActivity` 클래스가 `FragmentContainerView`를 사용해야 한다면, `ComponentActivity` 대신 `AppCompatActivity`나 `FragmentActivity`를 상속하도록 수정하는 것이 좋습니다. 이렇게 하면 프래그먼트를 관리하는 데 필요한 메서드를 사용할 수 있으며, 이전에 발생했던 테마 관련 오류도 해결할 수 있을 것입니다.

 

관련 내장 메서드를 제공하지 않아서 생기는 문제였다.

 

 

해결방법 

ComponentActivity를 AppCompatActivity로 변경하고 

 <activity
            android:name=".SettingsActivity"
            android:exported="false"
            android:theme="@style/Theme.AppCompat.Light.NoActionBar"
            android:label="@string/title_activity_settings" />

theme를 별개로 설정해 주었더니 바로 해결되었다!!

 

 

반응형

댓글