Ich habe ein Projekt, wo ich eine RecyclerView
mit ScaleGestureDetector
zoomen muss. Es funktioniert, während Pinch Zoom außerhalb der RecyclerView
aber nicht auf Pinching über RecyclerView
arbeitet. Ich habe seit einiger Zeit darum gekämpft, das zu beheben, aber ich konnte es nicht lösen. Jede Hilfe wird sehr geschätzt. Danke im Voraus!!ScaleGestureDetector funktioniert nicht über recyclerview
Hier ist mein Java-Code
recyclerView.addOnItemTouchListener(new GalleryAdapter.RecyclerTouchListener(getApplicationContext(), recyclerView, new GalleryAdapter.ClickListener() {
@Override
public void onClick(View view, int position) {
Bundle bundle = new Bundle();
bundle.putSerializable("images", images);
bundle.putInt("position", position);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
SlideshowDialogFragment newFragment = SlideshowDialogFragment.newInstance();
newFragment.setArguments(bundle);
newFragment.show(ft, "slideshow");
}
@Override
public void onLongClick(View view, int position) {
}
}));
scaleGestureDetector = new ScaleGestureDetector(
this, new MySimpleOnScaleGestureListener(textMsg, recyclerView, factor));
private class MySimpleOnScaleGestureListener
extends ScaleGestureDetector.SimpleOnScaleGestureListener{
TextView viewMessage;
RecyclerView viewMyImage;
float factor;
public MySimpleOnScaleGestureListener(TextView v, RecyclerView iv ,float f) {
super();
viewMessage = v;
viewMyImage = iv;
factor = f;
}
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
//factor = 10.0f;
return true;
//return super.onScaleBegin(detector);
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
float scaleFactor = detector.getScaleFactor() - 1;
factor += scaleFactor;
viewMessage.setText(String.valueOf(scaleFactor)
+ "\n" + String.valueOf(factor));
viewMyImage.setScaleX(factor);
viewMyImage.setScaleY(factor);
return true;
//return super.onScale(detector);
}
}