ScrollView 의 높이가 바뀌었을 때를 알 수 있을까요?

안녕하세요
이제 막 공부 시작한 왕초보입니다.
컨텐트 사이즈 체인지 이벤트 말구 ScrollView의 높이가 바뀐 것은 어떻게 알 수 있을까요?

제가 하려고 하는건 이렇습니다.
image

<뷰>
<스크롤뷰 style={{flex:1}}>
</스크롤뷰>
<용도에 따라 높이가 바뀌는 컴포넌트 />
</뷰>

하단에 컴포넌트 높이가 바뀌면 스크롤 뷰 높이가 줄어들면, 이 때 스크롤 뷰의 스크롤을 맨 끝으로 내리고 싶습니다…

스크롤 뷰 높이 변경 이벤트가 있으면 그 때 scrollToEnd 하면 될텐데… 어느 시점에 해야 될 지 잘 모르겠습니다…

감사합니다!

ScrollView의 onContentSizeChange를 쓰지 않겠다고 하시니 하단 View의 높이가 바뀔때를 보시는게 좋겠습니다. 아니면 내용이 type별로 바뀐다면, 그 type에 관한 state나 prop을 하나 만드셔서 보시는 것도 좋은 방법입니다.

답변 감사합니다!
onContentSizeChange를 안쓰려는게 아니라 스크롤 뷰 자체의 높이가 줄어드는 것 이여서 사용을 못하고 있습니다ㅜㅜ

우선 하단 컴포넌트에게 prop으로 ScrollView.scrollToEnd 하는 함수를 넘기고 componentDidMount에서 0.2초뒤에 이 함수를 실행시키게끔 해서 원하는 기능은 구현 했으나, 좋은 방법이 아니여서 고민 중에 있습니다…

하단 컴포넌트의 높이가 바뀐 다음에 스크롤 뷰의 스크롤을 내려야 하는데 이 때를 못잡고 있습니다.

코드를 못봐서 자세히 답변을 해드릴 순 없으나 라이프 싸이클을 쓰는 경우라면 이것을 사용해 보시기 바랍니다.

1 Like