1
을 사용하여 ScaleGestureDetector
을 확대해야하는 프로젝트가 있습니다. RecyclerView
외부로 집어 넣는 동안 작동하지만 RecyclerView
이상의 집어 넣기에는 작동하지 않습니다. 나는 이것을 잠시 고치려고 애를 썼지 만 해결할 수는 없었다. 어떤 도움을 주셔서 감사합니다. 미리 감사드립니다 !!ScaleGestureDetector가 recyclerview에서 작동하지 않습니다.
여기 내 자바 코드이 클래스를 사용하여 확대 &에서
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);
}
}