Я пытаюсь сделать страницу соответствия экрана, как Tinder, используя библиотеку SwipeCards. У меня есть ViewPager в адаптер карты. И я хочу показать следующую фотографию пользователя, когда невидимый вид нажал. За это; Я реализовал GestureListener для невидимого просмотра, и обнаруженное событие касания - свайп или одно касание. Если событие проведено; тогда SwipeCard onTouch должен сработать. Но эта логика не работает, я не могу включить состояние Touch и не могу понять, как это решить.
Это мой CustomGestureListener:
public abstract class CustomGestureListener extends GestureDetector.SimpleOnGestureListener {
private final View mView;
public CustomGestureListener(View view){
mView = view;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
mView.onTouchEvent(e);
return super.onSingleTapConfirmed(e);
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
onTouch();
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (e1.getX() < e2.getX()) {
return onSwipeRight();
}
if (e1.getX() > e2.getX()) {
return onSwipeLeft();
}
return onTouch();
}
public abstract boolean onSwipeRight();
public abstract boolean onSwipeLeft();
public abstract boolean onTouch();
}
Я использую этот слушатель в своем фрагменте так:
mGestureDetector = new GestureDetector(getActivity(), new CustomGestureListener(viewRightNavigation) {
@Override
public boolean onSwipeRight() {
//
return false;
}
@Override
public boolean onSwipeLeft() {
//
return true;
}
@Override
public boolean onTouch() {
return false;
}
});
viewRightNavigation.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return !mGestureDetector.onTouchEvent(event);
}
});
viewRightNavigation.setGestureDetector(mGestureDetector);
А это мой xml:
<RelativeLayout 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:id="@+id/relativeLayoutMatchScreenContainer"
android:layout_height="match_parent"
android:orientation="vertical"
tools:mContext="com.genesissoft.musictwin.fragment.MatchScreenFragment">
<com.lorentzos.flingswipe.SwipeFlingAdapterView
android:id="@+id/swipteFlingAdapterViewFrame"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_centerInParent="true"
android:background="#ffeee9e2"
android:baselineAligned="false"
app:rotation_degrees="15.5"
tools:mContext=".MyActivity" >
</com.lorentzos.flingswipe.SwipeFlingAdapterView>
<com.genesissoft.musictwin.view.SwipeableLinearLayout
android:id="@+id/viewRightNavigation"
android:layout_centerInParent="true"
android:orientation="vertical"
android:layout_alignParentRight="true"
android:layout_width="200dp"
android:layout_height="300dp"/>