我是xamarin的新手,我试图通过创建自定义Viewpager来禁用滑动,但是我在Viewpager中找不到触摸监听器界面。有什么办法吗?
public class CustomViewPager : ViewPager
{
Context _context;
public CustomViewPager(Context context) : base(context)
{
_context = context;
}
public CustomViewPager(Context context, IAttributeSet arg1) : base(context, arg1)
{
_context = context;
}
public bool IsPagerDisabled { get; set; }
/*public override Boolean OnTouchEvent(MotionEvent event)
{
if (!IsPagerDisabled)
{
return base.OnTouchEvent(event);
}
else
{
return false;
}
}*/
}
最佳答案
我最近做了一个类似的实现,这似乎很吸引人:
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"
汽车在哪里
xmlns:auto="http://schemas.android.com/apk/res-auto"
在代码中:
LockableViewPager viewpager= new LoackableViewpager();
Viewpager.SwipeLocked=true;