Android GestureDetectorの使い方

##アンドロイドのGestureDetectorの使い方を紹介いたします

###背景
ウェブビューをスワイプことによって、前のページに戻ったりしたいです

###コアソースコード
#### MainActivity.java

```java
public class MainActivity extends AppCompatActivity {

    WebView webView;
    private GestureDetector mGestureDetector;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initializa();
    }

    private void initializa(){
        initialGesutre();
        initlaWebView();
    }

    private void initialGesutre(){
        mGestureDetector = new GestureDetector(this,mOnGestureListener);
    }

    private void initlaWebView(){
        webView = (WebView) findViewById(R.id.webView);
        webView.loadUrl("https://www.yahoo.co.jp");
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setWebViewClient(new android.webkit.WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
            }
        });

        webView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                mGestureDetector.onTouchEvent(event);
                return false;
            }
        });

    }

    private final GestureDetector.SimpleOnGestureListener mOnGestureListener = new GestureDetector.SimpleOnGestureListener(){
        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

            float distance_x_vector = e2.getX() - e1.getX();
            float distance_x = Math.abs(e2.getX() - e1.getX());
            float distance_y = Math.abs(e2.getY() - e1.getY());

            //ここから判断します、左スワイプしているか、右へスワイプしているか
            //判断したら、WebViewにJavascriptインジェクトします
            //webGoAndForward()
            return false;
        }

        @Override
        public boolean onSingleTapUp(MotionEvent e) {
            return super.onSingleTapUp(e);
        }
    };

    private void webGoAndForward(Boolean forward){
        if (webView == null){
            return;
        }

        if(forward){
            webView.goForward();
        }else{
            webView.goBack();
        }
    }
}
```

#### activity_main/xml
```xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>
```

###結論

自分はネットでGestureDetectorについて色々調べて、やっと実装しました。ここでシンプルなコードを載せます。

皆に参考になれば幸いです