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

Implementierungsbeispiel für die Nginx-Zugriffskontrolle

Über Nginx, eine leistungsstarke, leichte Webserv...

So konfigurieren Sie den virtuellen Nginx-Host in CentOS 7.3

Experimentelle Umgebung Eine minimal installierte...

Erfahrungsaustausch zur Optimierung von MySQL-Big-Data-Abfragen (empfohlen)

Ernsthafte MySQL-Optimierung! Wenn die MySQL-Date...

Einige Erkenntnisse und Gedanken zu iframe

Diese Geschichte beginnt heute mit einer unerwarte...

Die Vue-Konfigurationsdatei generiert automatisch Routing- und Menüinstanzcode

Inhaltsverzeichnis Vorne geschrieben router.json ...

So verwenden Sie den JS-Code-Compiler Monaco

Vorwort Meine Anforderungen sind Syntaxhervorhebu...

Detaillierte Erklärung des einfachen Stores von Vue

Die einfachste Store-Anwendung in Vue ist die glo...

SQL-Übung: Produktkategorie-Datenoperation in der Online-Shopping-Datenbank

Datenbank für Online-Einkaufszentren - Produktkat...

Vue verwendet Mixins zur Optimierung von Komponenten

Inhaltsverzeichnis Mixins-Implementierung Zusamme...

Drei gängige Stilselektoren in HTML-CSS

1: Tag-Selektor Der Tag-Selektor wird für alle Ta...

Installieren Sie die MySQL5.5-Datenbank in einer CentOS7-Umgebung

Inhaltsverzeichnis 1. Prüfen Sie, ob MySQL auf de...