React Native realisiert den Auf- und Ab-Pull-Effekt der Überwachungsgeste

React Native realisiert den Auf- und Ab-Pull-Effekt der Überwachungsgeste

React Native implementiert die Überwachungsgeste zum Hoch- und Runterziehen. Der detaillierte Kerncode lautet wie folgt:

Code:

importiere {PanResponder} von ‚react-native‘;


var Dimensionen = erfordern('Dimensionen');
const deviceHeight = Dimensions.get("Fenster").height;
const Gerätebreite = Dimensions.get("Fenster").width;

Klasse TaskfinishedPage erweitert Komponente {
  Konstruktor(Requisiten) {
    super(Requisiten);
    Konsole.disableYellowBox = wahr;
    dieser.Zustand = {
      silderMargin: Gerätehöhe-230,
    };
      dies.letztesY1 = dieser.Zustand.silderMargin;
  }
 
  KomponenteWillMount() {

    this._panResponder = PanResponder.create({
      beimStartenSolltePanResponderEinstellen:(evt, gestureState) => {
          gibt true zurück;
      },
      beiBewegungSolltePanRespondereinstellen: (evt, Gestenstatus) => {
          gibt true zurück;
      },
      onPanResponderGrant: (evt, GesteState) => {
          dies._highlight();
      },
      beiPanResponderMove: (evt, Gestenstatus) => {
          console.log(`gestureState.dx : ${gestureState.dx} gestureState.dy : ${gestureState.dy}`);
          wenn (50 < this.lastY1 + gestureState.dy und this.lastY1 + gestureState.dy < Gerätehöhe - 230) {
             dies.setState({
              // marginLeft1: this.lastX1 + gestureState.dx,
              silderMargin: this.lastY1 + gestureState.dy,
          });
          }
         
      },
      beiPanResponderRelease: (evt, Gestenstatus) => {
          dies._unhighlight();
        
          dies.letztesY1 = dieser.Zustand.silderMargin;
      },
      onPanResponderTerminate: (evt, Gestenstatus) => {
      },
  });
  }


//Diese beiden Methoden werden ausgelöst, wenn die Hand den Punkt berührt und wieder verlässt.
  _unhighlight(){
    dies.setState({
        Schieberegler-Hintergrundfarbe: „transparent“,
    });
}

_hervorheben(){
    dies.setState({
        Schieberegler-Hintergrundfarbe: „transparent“,
    });
}


 rendern() {
    zurückkehren (
      <Container}>

        <Kopfzeile>
          <Links>
            <Schaltfläche transparent beim Drücken={() => {    
                NavigationUtil.resetGoBack(this.props.navigation);
            }}>
              <Symbolname = 'Pfeil zurück' Stil = {{Farbe: '#000'}}/>
            </Button>
          </Links>
          <Text>
          <Text style={{color:'#000'}}>Details zur abgeschlossenen Mission</Text>
          </Body>
          <Rechts />
        </Header>
        <Ansichtsstil={{ flex: 1 }}>
          <Ansichtsstil={
                [Stile.Panelansicht,
                {
                    Hintergrundfarbe: this.state.sliderBackgroundcolor,
                    marginTop: this.state.silderMargin,
                    zIndex:100
                
                }
                ]}
                  {...this._panResponder.panHandlers}
          >
       
            
          </Anzeigen>
          
 
          </Anzeigen>
      </Container>
    );
    }


const Stile = {
  Panelansicht: {
    Breite: Gerätebreite-20,
    Höhe: 410,
    Rand links: 10,
    Rand rechts: 10,
    Grenzradius: 6,  
 }
}

Standardmäßige TaskfinishedPage exportieren;

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • VSCode erstellt eine React Native-Umgebung
  • Lösen Sie das Problem, dass die React-Native-Softtastatur auftaucht und das Eingabefeld blockiert
  • Detaillierte Erläuterung der React-Native-WebView-Rückgabeverarbeitung (Nicht-Callback-Methode kann gelöst werden)
  • Detaillierte Erläuterung der nativen Android-Entwicklung mit React-Native Bridge
  • Eine kurze Diskussion zum React Native Flexbox-Layout (Zusammenfassung)
  • React Native react-navigation Navigationsnutzungsdetails
  • Spezifische Verwendung von FlatList in ReactNative
  • ReactNative FlatList-Verwendung und Fallstricke Paketübersicht
  • Erstellen einer einfachen Game-Engine mit React Native

<<:  MySQL-FAQ-Serie: Wann werden temporäre Tabellen verwendet?

>>:  So konfigurieren Sie Nginx, um die Zugriffshäufigkeit derselben IP zu begrenzen

Artikel empfehlen

js-Methode zum Löschen eines Felds in einem Objekt

Dieser Artikel stellt hauptsächlich die Implement...

Eine detaillierte Anleitung zu benutzerdefinierten Anweisungen in Vue

Inhaltsverzeichnis 1. Was ist eine benutzerdefini...

So implementieren Sie Funktions-Currying und -Decurrying in Javascript

Funktion Currying (schwarzes Fragezeichen)? ? ? C...

Lösungen für das Problem der Tabellenschachtelung und Rahmenzusammenführung

【Frage】 Wenn die äußere und die innere Tabelle ve...

Teilen Sie 8 MySQL-Fallstricke, die Sie erwähnen müssen

MySQL ist einfach zu installieren, schnell und ve...

Erläuterung der Ausführungspriorität von mySQL-Schlüsselwörtern

Wie unten dargestellt: aus Tabelle wobei Bedingun...

SQL-Implementierung von LeetCode (177. N-höchstes Gehalt)

[LeetCode] 177.N-höchstes Gehalt Schreiben Sie ei...

Lösung für die leere Seite nach einem vue.js-gepackten Projekt

Ich glaube, dass viele Partner, die gerade erst m...

10 Fähigkeiten, die Frontend-Entwickler millionenschwer machen

Die Fähigkeiten, die Front-End-Entwickler beherrs...

Welche Funktion ist !-- -- im HTML-Seitenstil?

Hauptsächlich für Browser mit niedriger Version &l...

Eine Zusammenfassung der Gründe, warum MySQL keinen Datumsfeldindex verwendet

Inhaltsverzeichnis Hintergrund erkunden Zusammenf...

Einfaches Beispiel zum Hinzufügen und Entfernen von HTML-Knoten

<br />Einfaches Beispiel zum Hinzufügen und ...