Я недавно сделал похожую реализацию, и это похоже на чудо:
using Android.Content;
using Android.Support.V4.View;
using Android.Views;
public class LockableViewPager : ViewPager
{
public bool SwipeLocked { get; set; }
Context mContext;
public LockableViewPager(Context context) : base(context)
{
Init(context, null);
}
public LockableViewPager(Context context, Android.Util.IAttributeSet attrs) : base(context, attrs)
{
Init(context, attrs);
}
private void Init(Context ctx, Android.Util.IAttributeSet attrs)
{
mContext = ctx;
}
public override bool OnTouchEvent(MotionEvent ev)
{
return !SwipeLocked && base.OnTouchEvent(ev);
}
public override bool OnInterceptTouchEvent(MotionEvent e)
{
return !SwipeLocked && base.OnInterceptTouchEvent(e);
}
public override bool CanScrollHorizontally(int direction)
{
return !SwipeLocked && base.CanScrollHorizontally(direction);
}
}
Как его использовать?
В xml:
<_yourNameSpace.LockableViewPager
auto:SwipeLocked="true"
, где auto -
xmlns:auto="http://schemas.android.com/apk/res-auto"
В коде:
LockableViewPager viewpager= new LoackableViewpager();
Viewpager.SwipeLocked=true;