심플하고 쓰기 쉬운 하단 바 (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라고 적도록 하겠습니다.
파일 네임을 적고 메뉴로 타입을 바꾸고 생성하면 다음과 같이 파일이 생성된것을 볼 수 있습니다.

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

item을 더 늘리면 그만큼 더 쓸 수있지만 바텀네비게이션 바는 최대 5개까지만 쓰는게 효율적입니다.
메인 엑티비티의 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)하는 함수를 정의한 것입니다.
코드를 하나씩 확인해보면


