智能手机上通过手势翻页的效果很普遍,这是大多数应用的必备功能,目前已经有很多jar包的类库实现了这个方法,不过这次我们不需要引用jar包,因为热心的程序员已经把java版的HorizontalPager翻译成了c#版的,可以直接在项目中使用。
github上面有相关的代码,直接去下载就可以https://github.com/Cheesebaron/MonoDroid.HorizontalPager
将这个类添加到自己的项目中,使用方法如下:
var horiPager = new HorizontalPager (this);
horiPager.ScreenChanged += new ScreenChangedEventHandler (horiPager_ScreenChanged);
horiPager.AddView (BuildWebView (nextPageModel));
其中,horiPager_ScreenChanged是翻页的过程中执行的委托方法,如果需要在翻页的过程中或者完成前后做操作,可以把相应的方法写在这里。
重要说明:HorizontalPager因为支持手势左右滑动翻页,所以捕获不到单指点击事件,但是可以通过修改源代码,实现当点击中间的时候能捕获到点击事件(不过这样手势在中间滑动的时候会捕获不到):
找到方法public override bool OnTouchEvent(MotionEvent e),修改case为Down的情况
case MotionEventActions.Down:
mLastMotionX = ev.GetX();
mLastMotionY = ev.GetY();
if(mLastMotionX>deviceWith*5/11&&mLastMotionX<deviceWith*6/11)
{
return true;
}