-
[안드로이드 스튜디오] BottomNavigationView 만들기Android 2023. 9. 30. 02:19
바텀네비게이션 뷰 만들기
1. 각 페이지 프래그먼트 만들기
Main에서 바텀을 두고/ Home, Look, Search, My라는 페이지를 얹을 것임.
2. 메뉴 생성
res 아래로 menu 리소스레포지토리 생성. 그 하위에 바텀 메뉴 생성
해당 파일 내부엔 아이콘, 타이틀, showAsAction; 항상 액션으로 보임. 등
<item android:id="@+id/home" android:enabled="true" android:icon="@drawable/ic_bottom_home_select" android:title="홈" app:showAsAction="always"/>
3. activity_main.xml
이처럼 프레임레이아웃+바텀네비 형태로 칸 짜두기.
프레임 레이아웃에 프래그먼트 올릴것임
4. 의존성 추가
이건 진작에 추가 되어있었어야지!
android { viewBinding { enable = true } } dependencies { implementation("androidx.viewpager2:viewpager2:1.0.0") implementation("androidx.navigation:navigation-fragment-ktx:2.7.3") implementation("androidx.navigation:navigation-ui-ktx:2.7.3") }
5. MainActivity.kt
아래와 같이 바인딩, 바텀네비에 대한 코드 추가
class MainActivity : AppCompatActivity() { lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) initBottomNav() } private fun initBottomNav() { switchFragment(HomeFragment()) // 맨 첫 화면 binding.bottomNav.setOnItemSelectedListener { item -> when(item.itemId) { R.id.home -> switchFragment(HomeFragment()) R.id.my -> switchFragment(MyFragment()) R.id.look -> switchFragment(LookFragment()) R.id.search -> switchFragment(SearchFragment()) } true } } private fun switchFragment(fragment: Fragment) { //프래그먼트 교체해주는 메서드 supportFragmentManager.beginTransaction().replace(R.id.main_fl, fragment) .commitAllowingStateLoss() } }
완성~!
참고 :
Navigation | Jetpack | Android Developers
Navigation | Android 개발자 | Android Developers
컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Navigation Navigation은 Android 애플리케이션 내에서 '대상' 사이를 탐색하는 프레임워크로, 대상이 Fragment, Activity
developer.android.com