Používam Navigator
, na jednej z mojich stránok mám vodorovnú plochu ListView
s mnohými položkami a jeho šírka je širšia ako"Keď sa teda snažím v zozname posúvať, neposunie sa, namiesto toho prejde na inú scénu. Ak zablokujem Navigátor, prejdením prstom nastavením scén" prejdete na null
potom posúvanie v mojom ListView je v poriadku.
Toto je môj navigátor “ configureScene
funkcie:
configureScene={
route => {
var sceneConfig;
if (route.sceneConfig) {
sceneConfig = route.sceneConfig;
} else {
sceneConfig = {...Navigator.SceneConfigs.HorizontalSwipeJump};
// sceneConfig.gestures = null;
}
return sceneConfig;
}}
A môj zoznam:
<ListView horizontal={true} ... />
Ako teda môžem použiť horizontálne posúvanie v zozname a posúvanie dozadu / dopredu na svojej stránke?
odpovede:
0 pre odpoveď č. 1Nakoniec som to urobil:
componentWillMount() {
this.listViewResponder = PanResponder.create({
onMoveShouldSetPanResponderCapture: (evt) => {
evt.stopPropagation();
return false;
}
});
}
render() {
return (
<ListView
{...this.listViewResponder.panHandlers}
// the rest List" settings
/>
)
}
Trik spočíva v tom, že si vytvoríme vlastný zvyk PanResponder
a zabránenie množenia Move
udalosť pre rodiča, ktorá je Navigator
.