WIL(Weekly I Learned)

DraggableFlatList long press시 list가 다른 위치로 순간이동

borobong230 2022. 9. 8. 19:17

부모에서 headerHeight값을 받아와

padding값에 넣어주었는데

ex) paddingTop: headerHeight,

 

long press시 list가 다른 곳으로 순간이동하는 현상이 발생했다.

 

오랫시간 방황했지만 원인은 headerHeight값이 들어가기전에 (초기값 0), DraggableFlatList가 렌더링되어 long Press 할때 headerHeight가 0인값인 곳으로 이동되는 문제였다.

 

해결책1. headerHeight이 초기값이 아닐때 (headerHieght !== 0) 해당 컴퍼넌트 렌더링

-> 문제점 0이 아닐때까지 기다려서 렌더링 속도차이가 남

 

해결책2. headerHeight 값이 들어왔다는 boolean 변수를 만들어 들어왔을때, 안들어왔을때의 paddingTop 값을 줌

ex) paddingTop: hasTitle ? headerHeight : 0;

-> 문제점: 애니메이션이 전처럼 매끄럽지 않음

 

해결책3. headerHeight값을 안받고 고정값으로 사용

->문제점: 기존에 제목의 길이에따라 1~2줄로 유동적으로 나오게 했지만, 무조건 적으로 한줄이면 긴 제목은 다 볼 수 없는 문제...

 

 

나는 우선 해결책2를 통해 해결했다.

어떻게 될지는 지켜봐야 알 것 같다.