Я пытаюсь вложить ScrollViews в React Native; горизонтальный свиток с вложенными вертикальными свитками.React Родной вложенный ScrollView блокировки
Вот пример:
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);
Внешний скроллер работает безупречно, но внутренние один палочки, когда вы касаетесь его, пока он движется. Я имею в виду: если вы прокрутите, поднимите свой палец и коснитесь его снова, пока он все еще движется с импульсом, он останавливается и не реагирует вообще, чтобы коснуться движений. Чтобы прокрутить больше, вам нужно снова поднять палец и снова коснуться.
Это настолько воспроизводимое, что это похоже на что-то связанное с Жестким Ответчиком.
Кто-нибудь видел эту проблему?
Как бы я даже начал отлаживать это? Есть ли способ увидеть, что реагирует на прикосновения, предоставление и освобождение, и когда?
Спасибо.
Update:
Похоже, это система Ответчика, поставив onResponderMove
слушателей на внутренние и внешние скроллерах:
<ScrollView
onResponderMove={()=>{console.log('outer responding');}}
...
<ScrollView
onResponderMove={()=>{console.log('inner responding');}}>
...
Это ясно, что внешний ScrollView захватывает контроль. Вопрос, я думаю, заключается в том, как остановить внешний скроллер от контроля при попытке прокрутки по вертикали? И почему это происходит только при попытке прокрутить уже движущийся внутренний ScrollView?
Вы видите это поведение в t он тоже симулятор? Не сразу понятно, что вы пытаетесь сделать здесь, практически говоря - может быть, есть более простой метод. –
Да. Случается и в симуляторе. Хорошим примером того, что я ищу, является Gilt. Вы можете перемещаться по вертикали через продукты и горизонтально через категории. Еще один - Netflix, хотя и обратный, поскольку у них есть несколько горизонтальных прокруток внутри вертикального. – nicholas
Вы нашли решение на этом? Я не хочу изменять основной код. – TYRONEMICHAEL