하반기

[Android Studio] 네비게이션 내 확장 리스트 1

wonjiwonji 2021. 9. 16. 10:54

다음은 스토리보드 상의 리스트뷰이다. 다음 모습과 유사하게 구현하기 위해 많은 시도를 하였다.

 

첫번째 시도는 expandable listview를 이용하는 것이다.

expandable listview란 확장 리스트뷰라는 뜻으로 해당 버튼을 클릭하면 밑으로 확장창이 나와 서브 메뉴들이 나오는 형태를 구현할 수 있는 리스트뷰이다.

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=javaking75&logNo=220843402180
블로그를 참고하여 구현을 해보았다.

 

구현을 하였는데 클릭이벤트 및 부모자식 레이아웃 변경(크기 색상 등) 부분은 구현하지 못하였다.

 

 

부모 자식 레이아웃 구분을 목표로 다른 방법을 탐색해보았다.
두번째 시도는 expandable recyclerview를 이용하는 방법이였다.

 

https://lakue.tistory.com/14

https://lakue.tistory.com/15?category=853542

위 두개 블로그를 참고하여 구현하였고, 구현 모습은 다음과 같았다.

일단 사용되는 자바 파일들이 많이 필요하여 너무 복잡하고 난이도가 높았으며,

하나의 부모에 여러개의 자식을 추가하는 것을 구현하지 못하였다.

또한 클릭이벤트 자체는 진행되나 자식 별 구분을 하여 값을 받아오는 것을 진행하지 못하였다.

 

 

Expandable Listview와 Expandable RecyclerView 두 가지 모두 완벽하게 우리가 원하는 결과를 도출해내지 못하였기 때문에 어떤 것을 좀 더 심도있게 개발해 볼지를 결정하였고,

조금 더 심플하게 느껴지는 Expandable ListView를 사용하는 쪽으로 방향을 잡았다.

 


세번째 시도는 다시 expandablelistview를 이용하여 개발해보았다.

https://ssscool.tistory.com/288 블로그를 참고하여 개발하였다.

프로젝트 자체는 상당히 심플하였고, 클릭이벤트와 우리 프로젝트에 적용이 되었다.

다만 첫번째 시도와 마찬가지로 부모 자식 레이아웃 구분이 되지 않았다.

 

 

두 번의 부모 자식 레이아웃 구분 실패를 토대로 어떤 문제점이 있는지 분석하였고,

하나의 xml에서 확장 리스트뷰가 나오기 때문에 실패를 했다는 결론에 도달하였다.

따라서 해당 내용을 중점으로 리서치를 하였고, 다음 자료를 발견하였다.

 

 

https://twinw.tistory.com/32  해당 블로그를 참고하여 네 번째 시도 expandablelistview를 진행하였다.

개발 결과 위 이미지 처럼 드디어 부모 자식 레이아웃 구분에 성공하였다.

하지만 클릭 이벤트를 구현하지 못하였고, 우리 프로젝트에 적용하지 못하였다.

 

 

따라서 다섯번째로는 세번째와 네번째의 결과를 합쳐 클릭이벤트, 우리 프로젝트에 적용, 부모자식 레이아웃 구분

이 세가지를 모두 충족하는 결과를 얻도록 시도하였다.

목표했던 부모 자식 레이아웃 구분, 프로젝트에 적용하였지만 클릭이벤트가 온전히 구현되지 않았다.

부모와 자식은 클릭이벤트에서 구분하지만 정확히 어떤 버튼을 클릭하였는지는 구현을 하지 못하였다.

 

따라서 앞으로 클릭이벤트(Toast Message)를 띄우는 것 대신

실질적으로 우리가 필요로 하는 네이버 맵 위에 폴리라인을 띄우는 것으로 시도해보기로 하였다.