반응형
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorNest">
<FrameLayout
android:id="@+id/outerFrame"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/tabBottom"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/tabBottom"
android:layout_width="0dp"
android:layout_height="?attr/actionBarSize"
android:background="#FFFFFF"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/bottomtab_view" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
MainActivity
class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::inflate) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
initNavigationBar()
}
private fun initNavigationBar() {
binding.tabBottom.itemIconTintList = null #bottomnavigationview의 아이콘에 color tint를 입히지 않을때
binding.tabBottom.run {
setOnNavigationItemSelectedListener {
when(it.itemId) {
R.id.home -> {
changeFragment(HomeFragment())
}
R.id.alarm -> {
changeFragment(AlarmFragment())
}
R.id.my -> {
changeFragment(MyFragment())
}
}
true
}
selectedItemId = R.id.home
}
}
private fun changeFragment(fragment: Fragment) {
supportFragmentManager .beginTransaction().replace(R.id.outerFrame, fragment) .commit()
}
res/menu/bottomtab_view.xml
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/home"
app:showAsAction="always"
android:icon="@drawable/home_tab_home"
android:enabled="true"
android:title="홈" />
<item
android:id="@+id/alarm"
app:showAsAction="always"
android:icon="@drawable/home_tab_alarm"
android:title="알림" />
<item
android:id="@+id/my"
app:showAsAction="always"
android:icon="@drawable/home_tab_mypage"
android:enabled="true"
android:title="MY" />
</menu>
반응형
'Android' 카테고리의 다른 글
[Android/Kotlin] TabLayout & Viewpager2 (0) | 2021.08.20 |
---|---|
[Android/Kotlin] Viewpager2로 이미지 슬라이드 & indicator (0) | 2021.08.20 |
[Android] ConstraintLayout (0) | 2021.06.19 |
[Android] Rxjava / Reactive Programming 개념 (0) | 2021.03.25 |
[Android/kotlin] datepickerdialog 커스텀 / 선택한 날짜의 년,월,일,요일 표시 (0) | 2021.03.08 |