Apple is Apple

일일회고

 

오늘은 작성하였다! 

 

프로젝트 개발하면서 틈틈히 작성했더니 어느정도 분량도 나오고 내가 했던 것을 정리 해 볼 수 있었다.

 

프로젝트 기간에는 틈틈히 작성하는 시간을 가져야겠다.


오늘의 키워드

    • 폰트 적용
    • 프로젝트 버그 수정

폰트 적용

TextView의 fontfamily속성을 통해 폰트를 지정해주었다.

버그 수정

1. 새로운 Fragment 이동 시 화면이 보이지 않던 현상 

Fragment를 구현한 xml에서 Fragment를 표시할 FrameLayout의 height를 0dp로 지정해놓아서 발생한 현상

해결: match_parent로 바꾸어 주어 높이를 정해주었다.

 

2. ViewPager Swipe를 통해 Call Fragment로 넘어가면 TabLayout이 안보이던 현상

코드를 작성할 때, TabLayout의 탭 이동에 따른 selectedListener를 설정을 해주지 않아 발생했던 문제이다.

해결: TabLayout.addOnTabSelectedListener의 onTabSelected메서드에서 CallFragment위치인 2번에 TabLayout의 visibility를 설정해주었다.

tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
            override fun onTabSelected(tab: TabLayout.Tab?) {
                when (tab?.position) {
                    0 -> {
                        viewPager.isVisible = true
                        viewPager.setCurrentItem(0, false)
                    }
                    1 -> {
                        viewPager.setCurrentItem(1, false)
                    }

                    2 -> {
                        tabLayout.isVisible = true //
                        viewPager.setCurrentItem(2, false)
                    }
                }
            }
         }

3. RecylclerView Item에서 좋아요 클릭시 View Type이 제대로 동작하지 않던 현상 수정

기존 데이터의 ViewType을 고정시켜놓아서 발생한 문제이다.

우선 DEFAULT TYPE이란 새로운 타입을 만든 후, 모든 데이터의 type을 DEFAULT TYPE으로 바꾸어 주었다.

그 후 보여 주기 전에는 항상 짝수 번째 아이템에는 LEFT_POSITION을 지정하고 홀수 번 째 아이템에는 RIGHT_POSITION을 지정하여서, 좋아요순, 이름 순으로 정렬이 되더라도, 일관된 뷰를 보여줄 수 있도록 하였다.

CallObjectData.list.onEachIndexed { index, callingObject ->
                callingObject.type =
                    if (index % 2 == 0) ViewType.LEFT_POSITION else ViewType.RIGHT_POSITION
            }.sortedByDescending { it.isLiked }

4. 핀 고정 기능 즉시 핀 고정이 되도록 수정

기존에는 SwipeRefreshLayout을 통해 Refresh를 하면 핀 고정 (좋아요한 아이템 상단 고정)을 하도록 했는데 RecyclerView의 notifyItemMoved(fromPosition, toPosition)을 통해 좋아요 버튼 클릭 시 바로 핀 고정이 되도록 하였다.

    fun sortingLikedList(position: Int) {
        val targetItem = _list[position]
        val sortedList =
            _list.sortedWith(compareByDescending<CallingObject> { it.isLiked }.thenBy { it.name })
                .onEachIndexed { index, callingObject ->
                    callingObject.type =
                        if (index % 2 == 0) ViewType.LEFT_POSITION else ViewType.RIGHT_POSITION
                }
        addItems(sortedList)
        notifyItemMoved(position, sortedList.indexOf(targetItem))
    }

 

등등 다양한 수정 작업을 진행하였다.

 

 

[DESIGN] [FIX] contact list fragment font 및 버그 수정 by Kim-Min-Jong · Pull Request #29 · Coding-landing/YOU_ME

Contact List Fragment의 TextView에 font에 폰트를 적용하였고, RecyclerVIew Item 클릭 시 화면이 안 보이는 현상, 좋아요 버튼 클릭 시 정렬이 잘 안되던 현상을 수정하였습니다. close #21

github.com

 

profile

Apple is Apple

@mjjjjjj