Я пытаюсь вставить ScrollViews в React Native; горизонтальный свиток с вложенными вертикальными свитками.
Вот пример:
var Test = React.createClass({
render: function() {
return (
<ScrollView
style={{width:320, height:568}}
horizontal={true}
pagingEnabled={true}>
{times(3, (i) => {
return (
<View style={{width:320, height:568}}>
<ScrollView>
{times(20, (j) => {
return (
<View style={{width:320, height:100, backgroundColor:randomColor()}}/>
);
})}
</ScrollView>
</View>
);
})}
</ScrollView>
);
},
});
AppRegistry.registerComponent('MyApp', () => Test);
Наружный скроллер работает безупречно, но внутренний палочка, когда вы касаетесь его во время движения. Я имею в виду: если вы прокрутите, поднимите свой палец и коснитесь его снова, пока он все еще движется с импульсом, он останавливается и не реагирует вообще, чтобы коснуться движений. Чтобы прокрутить больше, вам нужно снова поднять палец и снова коснуться.
Это настолько воспроизводимо, что это похоже на что-то вроде Жест-ответчика.
Кто-нибудь видел эту проблему?
Как бы я даже начал отлаживать это? Есть ли способ увидеть, что реагирует на касания, предоставление и освобождение, и когда?
Спасибо.
Обновление:
Похоже, что это система респондентов, помещая onResponderMove
прослушиватели на внутренний и внешний скроллеры:
<ScrollView
onResponderMove={()=>{console.log('outer responding');}}
...
<ScrollView
onResponderMove={()=>{console.log('inner responding');}}>
...
Ясно, что внешний ScrollView захватывает управление. Вопрос, я думаю, заключается в том, как остановить внешний скроллер от контроля при попытке прокрутки по вертикали? И почему это происходит только при попытке прокрутить уже движущийся внутренний ScrollView?