325일차 - IT 영단어 앱 : Bottom Navigation
2021. 11. 19. 23:44ㆍDiary/300~400
< 소스 코드 >
https://github.com/KwonGeneral/it_word.git
GitHub - KwonGeneral/it_word: IT영단어
IT영단어. Contribute to KwonGeneral/it_word development by creating an account on GitHub.
github.com
< activity_main.xml >
< MainActivity.kt >
class MainActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val bottomNavList: ArrayList<ImageView> = arrayListOf(bottom_nav_home, bottom_nav_note, bottom_nav_quiz, bottom_nav_mypage)
FireBaseVM(this).let { fm ->
fm.createFcm()
fm.fcmStatusMessage.observe(this, { ob ->
Toast.makeText(applicationContext, ob, Toast.LENGTH_SHORT).show()
})
}
ScreenVM.getInstance(this).screenStatus.observe(this, { fragment_name ->
for(k in bottomNavList) {
k.backgroundTintList = ColorStateList.valueOf(Color.parseColor(ColorDefine.BOTTOM_NAV_DIS_ACTIVE.color))
}
when(fragment_name) {
HOME_FRAGMENT -> { bottom_nav_home.backgroundTintList = ColorStateList.valueOf(Color.parseColor(ColorDefine.BOTTOM_NAV_ACTIVE.color)) }
NOTE_FRAGMENT -> { bottom_nav_note.backgroundTintList = ColorStateList.valueOf(Color.parseColor(ColorDefine.BOTTOM_NAV_ACTIVE.color)) }
QUIZ_FRAGMENT -> { bottom_nav_quiz.backgroundTintList = ColorStateList.valueOf(Color.parseColor(ColorDefine.BOTTOM_NAV_ACTIVE.color)) }
MYPAGE_FRAGMENT -> { bottom_nav_mypage.backgroundTintList = ColorStateList.valueOf(Color.parseColor(ColorDefine.BOTTOM_NAV_ACTIVE.color)) }
}
changeFragment(fragment_name)
})
bottom_nav_home_layout.setOnClickListener { ScreenVM.getInstance(this).screenStatus.value = HOME_FRAGMENT }
bottom_nav_note_layout.setOnClickListener { ScreenVM.getInstance(this).screenStatus.value = NOTE_FRAGMENT }
bottom_nav_quiz_layout.setOnClickListener { ScreenVM.getInstance(this).screenStatus.value = QUIZ_FRAGMENT }
bottom_nav_mypage_layout.setOnClickListener { ScreenVM.getInstance(this).screenStatus.value = MYPAGE_FRAGMENT }
}
private fun changeFragment(fragment_type:String) {
supportFragmentManager.beginTransaction().let { ft ->
fragment_type.let { ty ->
when (ty) {
HOME_FRAGMENT -> HomeFragment().apply { ft.replace(R.id.main_frag, this).commit() }
QUIZ_FRAGMENT -> QuizFragment().apply { ft.replace(R.id.main_frag, this).commit() }
CHAT_FRAGMENT -> ChatFragment().apply { ft.replace(R.id.main_frag, this).commit() }
NOTE_FRAGMENT -> NoteFragment().apply { ft.replace(R.id.main_frag, this).commit() }
MYPAGE_FRAGMENT -> MypageFragment().apply { ft.replace(R.id.main_frag, this).commit() }
SETTING_FRAGMENT -> SettingFragment().apply { ft.replace(R.id.main_frag, this).commit() }
else -> QuizFragment().apply { ft.replace(R.id.main_frag, this).commit() }
}
}
}
}
}
'Diary > 300~400' 카테고리의 다른 글
327일차 - IT 영단어 앱 : 퀴즈 (0) | 2021.11.21 |
---|---|
326 일차 - IT 영단어 앱 : 홈 화면 (0) | 2021.11.20 |
324일차 - 찰스 안드로이드 링크 모음 (0) | 2021.11.18 |
323일차 - IT 영단어 앱 : Local DB & Shared DB (0) | 2021.11.17 |
322일차 - IT 영단어 앱 : FCM Token & Firebase Store & Fragment 화면 전환 (0) | 2021.11.16 |