게임 개발 메모장
[ UE5 ] ListView 개념 본문
만약 위와 같은 화면을 위해 레이아웃을 구성해야 된다면?
방법은 여러가지가 있겠다.. xml에 하나하나 그려가며 잡아줄 수도 있고,
코드로 동적으로 원하는 만큼의 레이아웃을 만들어 붙일 수도 있고. 등등..
사실 정답은 없다.
하지만 위의 방법들은 리스트의 아이템이 많아질수록 xml이 굉장히 복잡해지거나
길어져 보기에도 불편하고 유지보수에도 힘들것 같고,
한번에 화면에 모두 그려야하기에 안드로이드가 부담스러워 할 것 같다.
ListView를 사용한다면 좀 더 간단하게, 좀 더 부담이 덜 되도록 알아서 관리를 받을 수 있다.
ListView란?
ListView란 무엇일까요? ListView는 말 그대로 View들을
리스트처럼 보여주도록 하는 컨테이너 이다.
'컨테이너'라 함은 흔히 알고 계시는 선박에서
물건들을 담아 보관해두는 역할을 하는 박스를 말한다.
여기에서는 물건들 대신에 View들을 담아두는 ViewGroup 이라고 이해하시면 될 것 같다.
ListView가 View를 담아두기만 하는 녀석이라면,
위에서 말씀드린 방법과 별 차이가 없다.
당연히 담아 놓은 View들을 효율적으로 관리하는 역할도 한다.
ListView는 화면에 보이는 View들만 생성하여 보여주고
있다가 화면을 위아래로 스크롤 시에 보이지 않게
된 부분의 기존 View를 메모리에서 해제한 뒤,
재활용하여 새롭게 보이게 되는 View를 구성하게 된다
.
가장 중요한 키워드는 "재활용"이다.
리스트의 아이템이 아무리 많더라도 ListView는 화면에 보이는
몇 개의 View만 생성하여 보여주고,
스크롤 시에도 기존에 만들었던 View를 재활용하기 때문에 메모리 측면에서 부담이 덜어지게 된다.
뒤에서도 다루겠지만, 여기서 재활용은 View만을 재활용한다는 의미이지
데이터까지 모두 재사용 되는 것은 아니다.
데이터가 아닌 View만 재활용!.
ListView의 동작원리는 굉장히 중요하다.
'언리얼 엔진 > 기능' 카테고리의 다른 글
[ UE5 ] TimeManager ( 코루틴 ) (0) | 2024.01.06 |
---|---|
[ UE5 ] 문자열, 문자열 포맷 (0) | 2024.01.02 |
[ UE5 ] UCLASS, UPROPERTY 매크로 (0) | 2023.12.25 |
[ UE5 ] 정렬 알고리즘 정리 (0) | 2023.12.16 |
[ UE5 ] 게임 플레이 프레임워크 클래스 (0) | 2023.12.10 |