React-native-router-flux: Benutzerdefinierte Animation für Szenenübergänge

Erstellt am 9. Juli 2016  ·  3Kommentare  ·  Quelle: aksonov/react-native-router-flux

Ausführung

  • reagieren-native-router-flux v3.26.13
  • reagieren-nativ v0.26.3

Die standardmäßige Frühlingsanimation beim Szenenübergang ist etwas langsamer als erwartet, daher frage ich mich, ob es möglich ist, eine benutzerdefinierte Animation zu erstellen und zu verwenden. Jeder Hinweis wäre willkommen.

Alle 3 Kommentare

Hallo, hier ist, wie ich es gemacht habe, um mit RTL-Sprachen umzugehen (wie Arabisch, so dass der Übergang von rechts nach links ist.

  rtlAwareAnimation(pos, navState) {
    const factor = I18n.rtl() ? -1 : 1;
    Animated.spring(
      pos,
      {
        bounciness: 0,
        toValue: factor*navState.index,
      }
    ).start();
  },

  render() {
    return (
      <Router>
        <Scene key="signIn" component={SignIn} title={I18n.t('signIn')} initial={true} applyAnimation={this.rtlAwareAnimation} />
        <Scene key="dashboard" component={Dashboard}applyAnimation={this.rtlAwareAnimation} />
      </Router>
    );

Wirklich sinnvoll ist es aber trotzdem nicht, da die Szenen an speziellen Positionen platziert werden, was bedeutet, dass die Übergangsrichtung mit der Stelle übereinstimmen muss, an der die nächste Szene ist

Wie wäre es von oben nach unten oder umgekehrt? es scheint nur 1 Dimension zu behandeln.

Sie haben dieses Problem bereits behoben. Sie müssen lediglich die Eigenschaft direction angeben, da die Richtung standardmäßig von rechts nach links ist.
import { I18nManager } from 'react-native'
let directionSide = I18nManager.isRTL ? 'leftToRight' : null
<Scene key='xXXXX' component={XXXXX} title='XXXXX' direction={directionSide}/>

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen