android - Zoomed in RecyclerView does not scroll all the way -
i have custom recyclerview zooms, when zoomed in, doesn't scroll through whole view. stops little short on each end. since recyclerview nested inside horizontalscrollview, not scroll left , right completely. how fix this?
zoomrecyclerview.java
public class zoomrecyclerview extends recyclerview { private scalegesturedetector scalegesturedetector; private static final string tag = zoomrecyclerview.class.getsimplename(); private float scalefactor = 1.f; private static final float minscale = 1.0f; private static final float maxscale = 3.0f; public zoomrecyclerview(context context, attributeset attrs) { super(context, attrs); scalegesturedetector = new scalegesturedetector(getcontext(), new scalegesturedetector.onscalegesturelistener() { @override public boolean onscale(scalegesturedetector detector) { scalefactor *= detector.getscalefactor(); //makes sure user not zoom in or out past amount scalefactor = math.max(minscale, math.min(scalefactor, maxscale)); //refresh view , compute size of view in screen invalidate(); return true; } @override public boolean onscalebegin(scalegesturedetector detector) { return true; } @override public void onscaleend(scalegesturedetector detector) { } }); } @override public boolean ontouchevent(motionevent event) { super.ontouchevent(event); if (event.getpointercount() > 1) { //notify scalegesturedetector event has happened scalegesturedetector.ontouchevent(event); } return true; } @override protected void dispatchdraw(@nonnull canvas canvas) { //scales display, centered on user touching display canvas.scale(scalefactor, scalefactor, scalegesturedetector.getfocusx(), scalegesturedetector.getfocusy()); super.dispatchdraw(canvas); } }
Comments
Post a Comment