Ich benutze Navigator
Auf einer meiner Seiten habe ich eine Horizontale ListView
mit vielen Artikeln, und die Breite ist breiter als einescreen "width. Wenn ich also in der Liste scrollen möchte, wird nicht gescrollt, sondern es wird zu einer anderen Szene gewischt. Wenn ich den Navigator blockiere," Wischen durch Setzen der Szene ", zeigt er an null
dann ist das Scrollen in meiner ListView in Ordnung.
Das ist mein Navigator " configureScene
Funktion:
configureScene={
route => {
var sceneConfig;
if (route.sceneConfig) {
sceneConfig = route.sceneConfig;
} else {
sceneConfig = {...Navigator.SceneConfigs.HorizontalSwipeJump};
// sceneConfig.gestures = null;
}
return sceneConfig;
}}
Und meine Liste:
<ListView horizontal={true} ... />
Wie kann ich also sowohl das horizontale Scrollen in einer Liste als auch das Vor- und Zurückblättern der Seite verwenden?
Antworten:
0 für die Antwort № 1Ich habe es am Ende so gemacht:
componentWillMount() {
this.listViewResponder = PanResponder.create({
onMoveShouldSetPanResponderCapture: (evt) => {
evt.stopPropagation();
return false;
}
});
}
render() {
return (
<ListView
{...this.listViewResponder.panHandlers}
// the rest List" settings
/>
)
}
Der Trick besteht also darin, einen Benutzer zu erstellen PanResponder
und Verhinderung der Ausbreitung von Move
Ereignis an ein Elternteil, das ist Navigator
.