Android Studio 버전 업그레이드 이후 오류 해결

quinones·2024년 6월 24일

2024년도 버전으로 업그레이드한 이후, Composer가 아닌 Empty Acitivity로 프로젝트를 만들게 되면

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_main)
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
            val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
            insets
        }
    }
}

이렇게 생성이 된다.
ViewCompat.~~~가 추가가 됐는데, 이부분은 뷰에 WindowinsetsListener를 설정하여 시스템 UI(상태 표시줄, 네비게이션 바 등)가 뷰 영역을 침범하는 것을 방지해 준다고 한다. 그리고 뷰의 패딩을 조정하여 시스템 UI와 겹치지 않도록 한다.

이 코드는 기본적인 액티비티 설정을 위한 코드이며, 앱의 기능에 따라 추가적인 코드를 작성해야 한다.

나 역시 문제가 발생했는데 바텀네비게이션 하단에 여백이 너무 많이 생기며 타이틀바 아래에 UI가 사라져버리는 문제가 발생했다.

해결방법

ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
    val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
    (v.layoutParams as ViewGroup.MarginLayoutParams).topMargin = systemBars.top
    insets
}

해당부분을 이렇게 바꿔줘서 해결하였다.

profile
이우진

0개의 댓글