개발자

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

2022년 12월 13일조회 1,027

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

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 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
2
3
4
5
6
7
8
9
#1
<ScrollView ref={(ref) => { this.scrollView = ref; }}>
  // 스크롤뷰 내용
</ScrollView>

#2
onTabPress = (index) => {
  this.scrollView.scrollTo({ y: index * ITEM_HEIGHT });
}

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

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

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

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

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