网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

怎么在Android中自定义ViewPager实现纵向滑动翻页效果

怎么在Android中自定义ViewPager实现纵向滑动翻页效果?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

十载专注建站、设计、互联网产品定制设计服务,业务涵盖成都品牌网站建设商城网站制作微信小程序定制开发、软件系统开发、重庆APP开发公司等。凭借多年丰富的经验,我们会仔细了解每个客户的需求而做出多方面的分析、设计、整合,为客户设计出具风格及创意性的商业解决方案,创新互联建站更提供一系列网站制作和网站推广的服务,以推动各中小企业全面信息数字化,并利用创新技术帮助各行业提升企业形象和运营效率。

public class VerticalViewPager extends ViewPager {
  public VerticalViewPager(Context context) {
    super(context);
  }
 
  public VerticalViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
  }
 
  @Override
  public boolean onTouchEvent(MotionEvent ev) {
    return super.onTouchEvent(swapTouchEvent(MotionEvent.obtain(ev)));
  }
 
  @Override
  public boolean onInterceptTouchEvent(MotionEvent ev) {
    return super.onInterceptTouchEvent(swapTouchEvent(MotionEvent.obtain(ev)));
  }
 
  private MotionEvent swapTouchEvent(MotionEvent event) {
    float width = getWidth();
    float height = getHeight();
    event.setLocation((event.getY() / height) * width, ((event.getX() / width) * height));
    return event;
  }
}

首先,我们自定义一个继承ViewPager的类,我们重点关注一下swapTouchEvent()方法。这个方法是将MotionEvent事件的x坐标换成y坐标,而y坐标换成x坐标。当然,这个是参考百度的,我们理解了就好。其实现实在妙不可言!

public class VerticalPageTransformer implements ViewPager.PageTransformer {
  @Override
  public void transformPage(View view, float position) {
    /**
     * 0 当前界面
     * -1 前一页
     * 1 后一页
     */
    if (position >= -1 && position <= 1) {
      view.setTranslationX(view.getWidth() * -position);
      float yPosition = position * view.getHeight();
      view.setTranslationY(yPosition);
    }
  }
}

上部分代码,实现了界面由原来的横向平移到纵向平移的过程。其思路是这样的,我画了一个草图(凑合看,毕竟连幼儿园都没毕业,画画功底~~)

怎么在Android中自定义ViewPager实现纵向滑动翻页效果

这张图描述了我们手机的屏幕,我们知道ViewPager,默认是把三个界面横向着排一起的,现在我们将其改为纵向的。
如果手指向下滑动,也就是第一个界面(绿色的),它将会进入到我们的屏幕,然而当前页(红色的)将退出屏幕,这是一套完整的流程,手指向上滑动,则方向相反。

view.setTranslationX(view.getWidth() * -position);
 float yPosition = position * view.getHeight();
 view.setTranslationY(yPosition);

看完上述内容,你们掌握怎么在Android中自定义ViewPager实现纵向滑动翻页效果的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


分享文章:怎么在Android中自定义ViewPager实现纵向滑动翻页效果
分享路径:http://bjjierui.cn/article/ggiije.html

其他资讯