2016-08-16 8 views
1

반응 네이티브에서 ListView의 초기 스크롤 위치를 설정하려고합니다. 내가 처음에 스크롤 할 위치를 images 소품리스트 뷰에 대한 데이터 소스입니다React 네이티브 ListView 초기 스크롤 위치 설정

componentDidMount() { 
    let i = this.props.images.indexOf(this.props.current); 
    if(i != -1) { 
    this.refs.listView.scrollTo({ x:i*this.props.width, y:0, animated:false }); 
    } 
} 

에서, current 소품이, 그리고 width 소품은이다 : 지금

, 나는이 일을 해요 컴퍼넌트의 폭 구성 요소가 가로로 스크롤됩니다.

이 방법을 사용할 수는 있지만 초기 렌더링과 componentDidMount에 대한 호출 사이에 지연이 있으므로 목록이 끝나기 전에 목록의 끝이 깜박입니다.

목록의 초기 스크롤 위치를 설정하는 방법이 있습니까? 아니면 플래시를 없애기 위해 더 나은 방법이 있을까요?

+0

iOS에서는 'contentOffset' 속성을 사용할 수 있습니다. https://facebook.github.io/react-native/docs/scrollview.html#contentoffset - 최상의 x 플랫폼 방법이 무엇인지 잘 모릅니다. – jevakallio

+0

감사! 나는 그것을 보지 못했다. 내가 기본 scrollview의 속성을보고 깜빡 같아요. 대답으로 답장하면 수표를 줄 것입니다. – nicholas

답변

2

iOS에서는 ScrollView#contentOffset을 사용하여 ScrollView의 속성을 상속하는 ListView의 초기 스크롤 위치를 설정할 수 있습니다.

안드로이드 솔루션을 찾고 있다면 ListView.scrollTo 메서드를 호출하는 것이 일반적인 경우에 가장 적합한 방법 인 것 같습니다.

그렇다면 코드 샘플을 올바르게 해석하면 pagingEnabled 속성을 사용하여 페이지 매김 된 가로 목록에 ListView를 사용하고 있습니까? 이 경우 Android에서는 ViewPagerAndroid을 대신 사용하고 initialPage 속성을 설정할 수 있습니다.