저라면 리스트뷰는 하나로 쓸 것 같습니다.
각 댓글은 parentId 필드가 있고, 이 필드가 비어있으면 그냥 표시, 이 필드에 값이 있으면 어떤 댓글의 대댓글로 판단하는거죠.
대댓글이면 부모댓글의 왼쪽 여백보다 더 많은 여백을 주게하고, 숨겨져있던 -도 표시하는거죠.
이렇게하면 어떤 댓글 하나를 부른 후, 해당 댓글의 대댓글이 있는지 확인하고, 있으면 가져오는 로직만 잘 짜면 될 것 같습니다.
대신 무한 대댓글은 문제가 발생할 수 있으니 depth를 몇 단계로 지정해놓거나 하는게 좋겠고요.