RP2 week3 - ListView) 2021.01.13

Star·2021년 1월 14일
0

📝Daily Report

시간

오후 7시 ~ 새벽 1시+@ 예정

Daily Schedule

1) 팝업창 & Delete - 어제 팝업창이 제대로 나오지 않았던 부분을 수정하고 delete 기능을 완료한다.
--> 예상 시간) 1시간
2) Update - Drag & Drop으로 플레이리스트의 음악 순서를 변경한다.
--> 예상 시간) 3시간+@
3) 키보드 - 음악을 추가할 때 키보드가 버튼을 가리는 부분을 수정한다.
--> 예상 시간) 30분
4) 코틀린 공부 - 함수 문법에 대해 짧게 알아본다
--> 예상 시간) 30분

결과

>> 팝업창 & Delete: 2시간

  • 이전 방법) 팝업 레이아웃의 전체 크기를 match_parent로 설정하고, 그 안에 View들을 담을 레이아웃을 따로 만들어서 비율로 크기를 설정했으나 잘 동작하지 않았다.

  • 수정 방법) 팝업 레이아웃의 전체크기에 맞게 View를 구성하고, 코드상에서 동적으로 액티비티의 크기를 설정하였다.

//동적으로 팝업창 사이즈 설정
fun setPopupSize(){
        val displayMetrics = DisplayMetrics()
        this.windowManager.defaultDisplay.getRealMetrics(displayMetrics)
        val width = (displayMetrics.widthPixels * 0.8).toInt()
        val height = (displayMetrics.heightPixels * 0.35).toInt()
        window.setLayout(width, height)
    }


>> update & drop: 3시간+@ -> 구현 못함
Drag & Drop에 대해 찾아봤는데 대부분이 RecyclerView와 ItemTouchHelper를 활용한 예제들이었다.
ListView의 예제들은 코드가 복잡하거나 외부 라이브러리를 사용하는 방식이 대부분이었다.
developer 문서에는 기본적인 Drag & Drop에 대한 설명이 나와있었지만 ListView나 RecyclerView를 활용하는 설명은 나와있지 않았다.

ListView를 활용하는 특별한 방식이 있지 않을까 한참 찾다가 찾지못했고, ItemTouchHelper를 ListView에도 쓸 수 있을까 해서 무작정 예제들을 먼저 살펴봤지만 이해가 가지 않을뿐더러 적용도 불가능해보였다. 결과적으로 3시간 넘도록 생산성없는 삽질에 집중력도 많이 떨어져서 시간낭비가 가까웠던 것 같다.

지금 돌이켜 생각해보면 RecyclerView로 다시 구현해도 됐을 것 같고, adapter에서 각 item의 view에 리스너를 연결하는 방식으로 해도 됐을 것 같다.


>> 키보드: 10분
액티비티에 android:windowSoftInputMode를 사용하려고 했으나, 화면 구성 자체가 단순하고 확인버튼만 가리는 상황이라 다른 View의 높이를 줄여서 해결했다.


문제점

1) 막히는 부분이 생겼을 때, 기존의 방법을 지나치게 고집하려고 한다.

2) 막히는 부분에서 문제에 대한 구체적인 인식 없이, 관련 키워드로 타성에 젖어 구글링을 하는 경우가 종종있다.

profile
To be Developer

0개의 댓글