Project/간단 메모장

BottomNavigationView와 Fragment

hegunhee 2021. 10. 9. 15:56

오늘은 BottomNavigationView와 Fragment를 추가하였다.

단순히 생성한 가계부를 보고 추가하고 지울수있는것만이 아닌 통계라던가 내 자산, 설정을 만질수 있어야하기에

BottomNavigationView을 추가하였다.

그리고 누르는 탭에따라 새로운 view가 생성되는것이아닌 상황에 맞는 view를 부착하기위해 Fragment를 사용하였다.

가계부탭과 통계탭

현재 나머지 두탭은 미구현이고 차차 구현할 예정이다

그리고 바텀 네비게이션 뷰 위는 Container로 정의해서 fragment를 부착하는형태로 정의했다.

그리고 fragment는 TAG를 기준으로 불러왔다.

 

코드 설명을 하자면 위의 함수는 네비게이션뷰가 선택이 될경우 그 탭의 이름을 기준으로 작동하는 로직이 다르다.

그리고 호출한 showFragment함수를 보자면 Tag를 기준으로 Fragment를 찾고

그 Fragment를 Container에 부착하기 전에 다른 모든 fragment를 숨긴다.

물론 item도 이런식으로 정의해놨다. 그렇기때문에 id를 기반으로 설정할 수 있다.

그리고 이번 프로젝트에서 Fragment를 4개 혹은 그 이상 사용할것같아서 BaseFragment를 만들었다.

다수의 Fragment를 사용하는것 뿐만 아닌 ViewModel과 ViewBinding, 생명주기를 잘 활용하기 위해서 만들었다.

Fragment와 Activity는 다르기때문에 생명주기도 다르게 적용이 된다.

Activity는 onCreate를 사용하지만 Fragment는 onViewCreated를 사용한다.

물론 Fragment가 부착되기 전 만들어지는 상태를 정의하는 onCreateView도 있다.

viewModel을 사용하기때문에 fetchJob도 정의해주고 initViews도 만들어준다.

그리고 생명주기가 끝날때 fetchJob 즉 viewModel이 계속 살아있을수도있어서 onDestroyView에서 job을 해지해준다.

이렇게 오늘은 bottomNavigationView와 Fragment(BaseFragment)를 사용해보았다.

앞으로는 삭제나 전체삭제같은 usecase도 작성해야하고

나머지 구현안한 두개의 탭도 만들어야한다.

'Project > 간단 메모장' 카테고리의 다른 글

UseCase 추가와 깨달은점  (0) 2021.10.08