React Nativeはモニタリングジェスチャーの上下プル効果を実現します

React Nativeはモニタリングジェスチャーの上下プル効果を実現します

React Native は、プルアップとプルダウンの監視ジェスチャを実装します。詳細なコアコードは次のとおりです。

コード:

'react-native' から {PanResponder} をインポートします。


var Dimensions = require('Dimensions');
const deviceHeight = Dimensions.get("window").height;
const deviceWidth = Dimensions.get("window").width;

クラスTaskfinishedPageはComponentを拡張します{
  コンストラクタ(props) {
    スーパー(小道具);
    コンソールでYellowBoxを無効にするには、trueを選択します。
    この状態 = {
      シルダーマージン: デバイス高さ-230、
    };
      this.lastY1 = this.state.silderMargin;
  }
 
  コンポーネントマウント() {

    this._panResponder = PanResponder.create({
      onStartShouldSetPanResponder:(evt, ジェスチャー状態) => {
          true を返します。
      },
      onMoveShouldSetPanResponder: (evt, ジェスチャー状態) => {
          true を返します。
      },
      onPanResponderGrant: (イベント、ジェスチャー状態) => {
          this._highlight();
      },
      onPanResponderMove: (イベント、ジェスチャー状態) => {
          コンソールにログを記録します(`gestureState.dx: ${gestureState.dx} ジェスチャーステート.dy: ${gestureState.dy}`);
          (50 < this.lastY1 + ジェスチャーステート.dy && this.lastY1 + ジェスチャーステート.dy < デバイスの高さ - 230){
             this.setState({
              // marginLeft1: this.lastX1 + ジェスチャーステート.dx,
              シルダーマージン: this.lastY1 + ジェスチャーステート.dy、
          });
          }
         
      },
      onPanResponderRelease: (evt, ジェスチャー状態) => {
          this._unhighlight();
        
          this.lastY1 = this.state.silderMargin;
      },
      onPanResponderTerminate: (evt, ジェスチャー状態) => {
      },
  });
  }


//これら 2 つのメソッドは、手が触れたときと離れたときにトリガーされます。
  _ハイライト解除(){
    this.setState({
        スライダー背景色: '透明'、
    });
}

_ハイライト(){
    this.setState({
        スライダー背景色: '透明'、
    });
}


 与える() {
    戻る (
      <コンテナ}>

        <ヘッダー>
          <左>
            <ボタンを透明にする onPress={() => {    
                ナビゲーションユーティリティをリセットして戻る(this.props.navigation);
            }}>
              <アイコン名='arrow-back' スタイル={{color:'#000'}}/>
            </ボタン>
          </左>
          <本文>
          <Text style={{color:'#000'}}>完了したミッションの詳細</Text>
          </本文>
          <右 />
        </ヘッダー>
        <View style={{ flex: 1 }}>
          <表示スタイル={
                [スタイル.パネルビュー、
                {
                    背景色: this.state.sliderBackgroundcolor、
                    marginTop: this.state.silderMargin、
                    zインデックス:100
                
                }
                ]}
                  {...this._panResponder.panHandlers}
          >
       
            
          </表示>
          
 
          </表示>
      </コンテナ>
    );
    }


定数スタイル = {
  パネルビュー: {
    幅: デバイス幅-20、
    高さ: 410,
    マージン左:10,
    マージン右:10,
    境界半径:6,  
 }
}

デフォルトの TaskfinishedPage をエクスポートします。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • VSCodeはReact Native環境を構築します
  • 反応ネイティブソフトキーボードがポップアップして入力ボックスをブロックする問題を解決する
  • react-native WebViewの戻り処理の詳細説明(コールバック以外の方法も解決可能)
  • React-native bridge Androidネイティブ開発の詳細説明
  • React Native Flexboxレイアウトについての簡単な説明(要約)
  • React Native react-navigation ナビゲーションの使用法の詳細
  • ReactNativeにおけるFlatListの具体的な使い方
  • ReactNative FlatList の使い方と落とし穴パッケージの概要
  • React Nativeでシンプルなゲームエンジンを作る

<<:  MySQL FAQ シリーズ: 一時テーブルを使用する場合

>>:  同じ IP のアクセス頻度を制限するように nginx を設定する方法

推薦する

jQueryでフルスクリーンスクロール効果を実現

この記事の例では、フルスクリーンスクロールを実現するためのjQueryの具体的なコードを参考までに共...

Raspberry Pi 3B+ に 64 ビット Ubuntu システムと Docker ツールをインストールする詳細な手順

Raspberry Pi 3B に 64 ビット アプリケーション (64 ビット JDK など) ...

Centos8 システムの VMware インストール チュートリアル図 (コマンド ライン モード)

目次1. ソフトウェアとシステムイメージ2. 仮想マシンを作成する3. CentOS8をインストール...

HTML フォーム_PowerNode Java アカデミー

1. フォーム1. フォームの役割HTML フォームは、さまざまな種類のユーザー入力を受け取り、ユー...

Vue2.0+ElementUI+PageHelperで実装されたテーブルページング機能

序文最近、いくつかのフロントエンド プロジェクトに取り組んでおり、ページにいくつかのテーブルを表示す...

Vueでaxiosをカプセル化する方法

目次1. インストール1. はじめに3. インターフェースルートアドレス4. 使用例4.1 ダウンロ...

CentOS に MySQL 8.0 をインストールして設定するための詳細な手順

序文CentOS に MySQL をインストールして設定する手順は次のとおりです。文章yumソースか...

ルート権限なしでログインするためのDockerソリューション

docker コマンドを初めて使用する場合、権限の問題を確認するメッセージが表示されます。 unix...

MySQL は重複データを削除して最小の ID ソリューションを維持します

オンラインで検索して重複データを削除し、ID が最小のデータだけを残します。方法は次のとおりです。 ...

ウェブページでグレーまたはブラックモードを実現するための CSS3 フィルターコード

フロントエンドcss3 フィルターは、Web ページのグレー効果を実現できるだけでなく、ナイト モー...

CSS フォーム検証機能の実装コード

レンダリング原理フォーム要素には、正規表現(携帯電話番号、メールアドレス、IDカードなど)をカスタマ...

フロントエンドのパフォーマンス最適化を学習するための準備として、HTML ページのレンダリング プロセスを理解する (続き)

昨夜、ブラウザのレンダリングプロセスに関するエッセイを書きましたが、小さなコードで説明しただけでした...

Nginx を使用してクロスドメイン Vue 開発環境を処理する方法

1. 需要正しい Cookie 配信と SSO テストを確実に実行できるように、ローカル テスト ド...

MySQLはライブラリ内の主キーなしでテーブルインスタンスコードを素早く取得します

概要MySQL データベースで主キーのないテーブルを表示するための SQL ステートメントをいくつか...

node.js で EventEmitter をカスタマイズする方法

目次序文1. 何ですか2. Node.jsでEventEmitterを使用する方法3. 実施プロセス...