와챠의 우당탕탕 개발 기록장

[안드로이드] 하단 메뉴(BottomNavigationView) 본문

코딩 일기장/Android(Kotlin)

[안드로이드] 하단 메뉴(BottomNavigationView)

minWachya 2021. 5. 14. 21:58
반응형

결과 화면

하단에 요로코롬 네비게이션으로 프레그먼트를 이동하게 만들어보자.

색깔은 구분 쉬우라고 일부러... 저렇게 했음

 

activity_main.xml

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="9">
</FrameLayout>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:menu="@menu/menu_tabs"
app:itemBackground="?attr/colorPrimary"
app:itemIconTint="#ff0000"
app:itemTextColor="#00ff00"
android:layout_weight="1"/>
</LinearLayout>

 

menu_taps.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/tab1"
android:enabled="true"
android:icon="@android:drawable/ic_media_play"
android:title="동영상"/>
<item
android:id="@+id/tab2"
android:icon="@android:drawable/ic_menu_gallery"
android:title="사진"/>
<item
android:id="@+id/tab3"
android:icon="@android:drawable/ic_popup_reminder"
android:title="알림"/>
</menu>
view raw menu_tebs.xml hosted with ❤ by GitHub

 

MainActivity.kt

package com.example.mysnskakao
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 시작은 프레그먼트 A로 초기화
with(supportFragmentManager.beginTransaction()) {
var fragmentA = FragmentA()
replace(R.id.container, fragmentA)
commit()
}
// 네비게이션
bottomNavi.setOnNavigationItemSelectedListener {
when(it.itemId) {
R.id.tab1 -> {
// container 부분에 FrameA 넣기
with(supportFragmentManager.beginTransaction()) {
var fragmentA = FragmentA()
replace(R.id.container, fragmentA)
commit()
}
return@setOnNavigationItemSelectedListener true
}
R.id.tab2 -> {
with(supportFragmentManager.beginTransaction()) {
var fragmentB = FragmentB()
replace(R.id.container, fragmentB)
commit()
}
return@setOnNavigationItemSelectedListener true
}
R.id.tab3 -> {
with(supportFragmentManager.beginTransaction()) {
var fragmentC = FragmentC()
replace(R.id.container, fragmentC)
commit()
}
return@setOnNavigationItemSelectedListener true
}
}
return@setOnNavigationItemSelectedListener false
}
}
}
view raw MainActivity.kt hosted with ❤ by GitHub

 

 

반응형
Comments