안드로이드-코틀린 ( 네비게이션뷰)

subak96·2023년 11월 22일
0

심플하고 쓰기 쉬운 하단 바 (Bottom Navigation View)을 적용해보도록 하자

시작하기

먼저 build.gradle에 다음 문구를 추가해줍시다.

implementation("com.google.android.material:material:1.8.0")

그리고 필요 수 만큼 프레그먼트를 생성해 줍니다.

네비게이션에 들어갈 메뉴 만들기


res -> New -> Android Resourec File를 클릭

Resource type 을 Values -> Menu로 바꾸고 파일네임은 원하는대로 적어주면 됩니다. 저는 bottom_navigation_menu라고 적도록 하겠습니다.

파일 네임을 적고 메뉴로 타입을 바꾸고 생성하면 다음과 같이 파일이 생성된것을 볼 수 있습니다.

메뉴 xml 구성

다음과 같이 작성해줍니다.

주의!

item을 더 늘리면 그만큼 더 쓸 수있지만 바텀네비게이션 바는 최대 5개까지만 쓰는게 효율적입니다.

메인 xml 작성

메인 엑티비티의 xml 코드는 다음과 같습니다.

background 는 마음에 드시는 색상으로 변경해주시면 됩니다.

여기까지 하셨다면 화면 바텀쪽에 다음과 같이 나올것입니다.

메인 엑티비티 코드

이제 메인 액티비티 코드를 작성하도록 하겠습니다.

코드는 다음과 같습니다.

supportFragmentManager.beginTransaction().replace(R.id.bottom_layout, homeFragment()).commit()

위 코드를 사용하여 앱이 처음 실행됐을때 보여줄 화면을 설정 할 수 있습니다. 저는 지금 홈프레그먼트(사진상 메인)를 처음 보일 수 있게 설정했습니다. homeFragment()를 다른 프레그먼트로 바꾸면 됩니다.

bottomNavigationView.selectedItemId = R.id.meun_Home

네비게이션뷰를 사용하면 왼쪽을 우선적으로 가리키기때문에 위의 사진처럼 번호생성쪽을 연한 보라색으로 가리키고 있지만 저는 홈프레그먼트(사진상 메인)가 처음 나오기 때문에 그에 맞게 앱이 처음 실행됐을때 네비게이션 바가 가라키는 곳 또한 앱이 처음 실행됐을때 나오는 화면과 같은곳이여야하니 위 코드를 써서 앱이 실행되면 메인을 가리키게 조정하였습니다.
meun_Home을 바꾸면 다른곳을 가리킬수 있습니다.

private fun replaceFragment(fragment: androidx.fragment.app.Fragment) {
supportFragmentManager.beginTransaction()
    .replace(R.id.bottom_layout, fragment)
    .commit()

}

위 코드는 Android 앱에서 Fragment를 동적으로 교체(replace)하는 함수를 정의한 것입니다.

코드를 하나씩 확인해보면

  • replaceFragment 함수는 Fragment를 교체하는 작업을 수행합니다.

  • 함수의 매개변수로 fragment를 받습니다. 이것은 교체할 새로운 Fragment입니다.

  • replace(R.id.bottom_layout, fragment)는 지정된 컨테이너 레이아웃(R.id.bottom_layout) 내에서 현재 표시 중인 Fragment를 새로운 Fragment로 교체합니다.

  • supportFragmentManager.beginTransaction()은 Fragment 트랜잭션을 시작합니다. 트랜잭션은 여러 개의 변경을 그룹화하여 한 번에 커밋할 수 있게 합니다.

  • commit()은 지금까지 설정한 트랜잭션을 실행하여 변경사항을 적용합니다.

실행


0개의 댓글