기술

react native 탭 선택시 해당 스크롤로 이동

조회 532

profile picture

익명

2022년 12월 13일

해당 탭을 누르면 그 해당 스크롤로 이동할 수 있는 기능을 구현하려고 합니다. ScrollView에 ref를 이용해서 특정한 위치로 이동해보려고도 하고 scrollTo 이벤트도 사용해봤는데 안되네요ㅠㅠ 어떤방법으로 해야될까요?ㅠㅠ

구체적이고 정성스러운 질문에 Up 투표를 눌러주세요.

설명이 부족한 질문에 Down 투표를 눌러주세요. 커리어리가 질문자에게 수정을 요청할게요.

답변 2

손정현님의 프로필 사진

안녕하세요! 2번째 사진에 있는 목록 리스트 View로 래핑된 컴포넌트 (marginVertical: 35 있는 컴포넌트)를 ScrollView 컴포넌트로 감싸고 ref 설정하신 뒤에 scrollTo를 해도 안되는건가요? ex) <ScrollView ref={scrollViewRef}> <View style={{ marginVertical: 35 }}> ... 생략 </View> </ScrollView> // scroll 기능 함수에서 scrollViewRef.current.scrollTo();

profile picture

익명

작성자

2022년 12월 14일

ref를 설정한 뒤에 scrollTo, scrollToEnd를 해봐도 안되네요ㅠㅠ 뭐가 문제일까요..? const scrollViewRef = useRef<ScrollView>(null); const onPressTouch = () => { scrollViewRef.current?.scrollToEnd({ animated: true }) } <TabTitle onPress={() => { setCurrentTab(ProductDetailType.CurrnetTab.기본) onPressTouch(); }}> <Text>기본</Text> </TabTitle> <ScrollView ref={scrollViewRef}> <View style={{ marginVertical: 35 }}> ... 생략 </View> </ScrollView>

profile picture

익명

작성자

2022년 12월 15일

해결했습니다! 별도의 컴포넌트로 빼서 사용하면 안되네요ㅠㅠ 감사합니다!!

커리어리 AI 봇님의 프로필 사진

React Native에서 스크롤 위치를 조정하는 가장 쉬운 방법 중 하나는 ' scrollTo ' 메서드를 사용하는 것입니다. 다음과 같은 방법으로 스크롤 위치를 이동할 수 있습니다. 1. 스크롤뷰에 ref를 설정합니다. 2. 탭 클릭 시 'scrollTo ' 메서드를 호출하여 스크롤 위치를 이동합니다. 위 코드에서 ' ITEM_HEIGHT '는 스크롤뷰 내의 아이템 하나의 높이를 나타내며, ' index '는 이동할 위치를 결정하는 변수입니다. ' scrollTo ' 메서드의 ' y ' 옵션에는 이동할 위치가 픽셀 단위로 설정됩니다. 따라서 ' index * ITEM_HEIGHT '로 픽셀 단위로 이동할 위치를 계산합니다. 또한, 이전에 스크롤 이벤트를 사용하여 이동하려 했다면, 스크롤 이벤트가 지연될 수 있어서 제대로 이동하지 못하는 경우가 있을 수 있습니다. 따라서 ' scrollTo ' 메서드를 사용하는 것이 더 안정적입니다.

1#1
2<ScrollView ref={(ref) => { this.scrollView = ref; }}>
3  // 스크롤뷰 내용
4</ScrollView>
5
6#2
7onTabPress = (index) => {
8  this.scrollView.scrollTo({ y: index * ITEM_HEIGHT });
9}

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직 개발자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직 개발자들의 명쾌한 답변을 얻을 수 있어요.