사실 이게 트러블슈팅인가?싶지만 일단 몰랐어서 고민했고, 구글링을 하며 새로 알아간 것들 중 좀 의미있는 아하모먼트를 가졌던 것들을 기록해본다.
캘린더 프래그먼트 들어가자마자 오늘 날짜 포커싱은 되는데 거기에 모든 리사이클러뷰가 뜨는 현상, 오늘날짜에만 뜨면 좋겠음.
-> 파이어베이스 불러와서 뷰모델에 저장, 닷 찍는거 하려면 모든 정보 필요. 이거 하려고 전체 정보 불러오는데 이 때 마지막 단계에 어답터도 호출해버려서 리사이클러뷰 전체가 셋팅됨
-> 마지막 단계에 어답터 호출 제거
-> 오늘 날짜 클릭 표시 하고, onViewCreated에서 개별 날짜에 대해 리사이클러뷰 불러와주는거 셋팅. (fetchDiariesForSelectedDate(selectedDate!!)
)
fetchDiariesForSelectedDate(selectedDate!!)
이 메서드가 결국 두 번 호출되는거. 생성됐을 때 한 번, 머터리얼캘린더뷰에서 각 날짜 클릭할 때 한 번
// 다른 날짜 클릭 시 일정 불러오기
binding.calendarView.setOnDateChangedListener(object:OnDateSelectedListener{
override fun onDateSelected(
widget: MaterialCalendarView,
date: CalendarDay,
selected: Boolean
) {
Log.d("CALENDER++", "setOnDateChanged${date.month}")
if (date.month < 10){
selectedDate = "${date.year}-0${date.month}-${date.day}"
}else{
selectedDate = "${date.year}-${date.month}-${date.day}"
}
Log.d("CALENDER++", "setOnDateChanged2$selectedDate")
fetchDiariesForSelectedDate(selectedDate!!)
}
})
onViewCreated
에서 뷰모델이 가지고 있는 selectedDiary가 null인지에 따라 내용을 셋팅하냐 마냐로 했음.