나는 네이티브 반응이있는 응용 프로그램을 개발 중입니다. 이 UI 요소는 iOS의지도와 유사합니다.이 요소는 패널을 아래에서 밀어 내고 내부에는 스크롤 가능한 목록이 있습니다.React 네이티브 슬라이드 패널 및 스크롤보기
슬라이드 아웃 패널의 경우 rn-sliding-up-panel
이라는 구성 요소를 사용하고 있습니다. 이벤트 리스너로 여러 개의 소품이 있습니다. 예를 들어 그 내부
<SlidingUpPanel
allowDragging={/*Boolean*/}
onDragStart={()=>{} /*When it is about to be dragged*/}
onDrag={()=>{} /*When it is being dragged*/}
onDragEnd={()={} /*When the user is no longer touching the screen*/}
></SlidingUpPanel>
를 들어, 나는 <ScrollView>
이 react-native-elements
에서 <List>
를 포함합니다. 내가 아는 한, 그것은 것, 단 하나의 벤트 리스너가 있습니다
<ScrollView onScroll={()=>{}}></ScrollView>
내 문제는 목록에 스크롤하는 것은 실제로 (이 아래로 밀어 종료) 종료 패널을 일으키는 것입니다. 나는 상태를 추가하고 onScroll을 modfiying하여 해결 방법을 찾을 :
state = {
dragPanel: true,
}
/*===========================================*/
<SlidingUpPanel allowDragging={this.state.dragPanel}>
<ScrollView onScroll={()={ this.setState({dragPanel: false}) }}></ScrollView>
</SlidingUpPanel>
그러나, 나는 드래그를 복원 할 수있는 방법을 찾을 수 있고, 효율적으로 해고하지 않습니다.
TL;
서로 겹치는 일정하지 않고 SlidingUpPanel 안에있는 ScrollView를 구현하는 방법이 eficient는 DR
? 아마도function(e){e.preventDefault();}
과 비슷한 것을 사용하고 있을까요?
답변 해 주셔서 감사합니다. 이해 한대로,'_onGrant()'는 사용자가 스크롤을 시작할 때 시작해야하고, 사용자가 스크롤을 멈 추면'_onRelease() '해야합니다. 그리고'this._panResponder'는 그에 따라 그들을 발생시킵니다. 그러나, 어떻게 그것을 ''에 구현해야합니까 ?? (즉, 속성 이름 또는 기타 무엇입니까?) –
edvilme
@edvilme'{... this._panResponder.panHandlers}'는 사용자가 설명하는 것과 정확히 동일합니다. * 소품 전송 * https://zhenyong.github.io/react/docs/transferring-props.html – Val
고맙습니다. 불행히도이 문제는 해결되지 않습니다. 그것은 나에게 도움이되었지만 핸들에 이벤트 리스너를 추가하고 모든 스크롤 이벤트에서 드래그를 거부했습니다. 고맙습니다!!! – edvilme