BottomNavigation 정리
BottomNavigation 이란?
위 화면에서 하단에 위치한 네비게이션 바를 의미합니다.
- 안드로이드 컴파일 버전 26.1.0 부터 추가되었습니다.
- 즉 처음부터 있던 뷰가 아닌 중간에 추가된 뷰이며 안드로이드 지원 라이브러리 중 디자인 라이브러리에 속합니다.
- 그렇기 때문에 app 단위에
를 추가해야 합니다.implementation 'androidx.core:core-ktx:1.0.2'
menu
BottomNavigation 은 res 폴더 밑에 menu를 만들고 그 안에 xml 파일을 정의해야 합니다.
반드시 resource type을 menu로 해주어야 합니다.
예시 코드
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/homeFragment"
android:icon="@drawable/ic_bottom_home_no_select"
app:showAsAction="always"
android:enabled="true"
android:title="홈"
tools:ignore="AlwaysShowAction" />
<item
android:id="@+id/searchFragment"
android:icon="@drawable/ic_bottom_search_no_select"
app:showAsAction="always"
android:title="검색" />
<item
android:id="@+id/lockerFragment"
android:icon="@drawable/ic_bottom_locker_no_select"
app:showAsAction="always"
android:title="보관함" />
</menu>
Fragment 전환
- fragment로 사용할 class를 생성합니다.
- view binding 을 이용하여 class 에 fragment를 연결합니다.
- setOnItemSelectedListener 를 설정합니다.
예시 코드
private fun initBottomNavigation(){
supportFragmentManager.beginTransaction()
.replace(R.id.main_frm, HomeFragment())
.commitAllowingStateLoss()
binding.mainBnv.setOnItemSelectedListener{ item ->
when (item.itemId) {
R.id.homeFragment -> {
supportFragmentManager.beginTransaction()
.replace(R.id.main_frm, HomeFragment())
.commitAllowingStateLoss()
return@setOnItemSelectedListener true
}
}
false
}
Author And Source
이 문제에 관하여(BottomNavigation 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jw0111/BottomNavigation-정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)