android viewpager2怎样修改精确度?

Android

1个回答

写回答

a467489

2026-01-27 21:55

+ 关注

Android
Android

package com.example.viewpagerdemo;import Android.app.Activity;import Android.content.Context;import Android.support.v4.view.ViewPager;import Android.util.Log;import Android.view.MotionEvent;import Android.widget PagerAdapter;import Android.widget.Scroller;public class BTViewPager extends ViewPager {private static final String TAG = "dzt_pager";private static final int MOVE_LIMITATION = 100;private float mLastMotionX;private int mCurScreen;private Scroller mScroller;public BTViewPager(Context context) {super(context);init(context);}public BTViewPager(Context context, AttributeSet attrs) {super(context, attrs);init(context);}private void init(Context context) {mScroller = new Scroller(context);mCurScreen = 0;}@Overridepublic boolean onTouchEvent(MotionEvent event) {if (event.getAction() == MotionEvent.ACTION_MOVE) {//当滑动距离小于MOVE_LIMITATION时,禁止滑动if (Math.ABS(event.getX() - mLastMotionX) < MOVE_LIMITATION) {return false;}else {//更新最后一次滑动时的x坐标mLastMotionX = event.getX();//更新当前显示的页面mCurScreen++;//判断是否有需要的页面if (mCurScreen >= getcount()) {//返回false以结束触摸事件return false;}//设置滑动距离为0setScrollingParameters(0, 0);//开始滑动操作startScroll(mCurScreen, 1, 0, getcount() - 1);}}else if (event.getAction() == MotionEvent.ACTION_UP) {//判断是否停止触摸事件if (Math.ABS(event.getX() - mLastMotionX) >= MOVE_LIMITATION) {//更新最后一次滑动时的x坐标mLastMotionX = event.getX();//更新当前显示的页面mCurScreen++;//判断是否有需要的页面if (mCurScreen >= getcount()) {//返回true以结束触摸事件return true;}//设置滑动距离为0setScrollingParameters(0, 0);//开始滑动操作startScroll(mCurScreen, 1, 0, getcount() - 1);}}return false;}}

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号