1.自定义ViewPager
package com.example.test.diyview; import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; import androidx.viewpager.widget.ViewPager; /** * Create by 王帅 * on 2020/4/17 * 自定义ViewPager * 解决滑动和切换多页面闪烁的问题 */ public class CustomViewPager extends ViewPager { private boolean isCanScroll = true; public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs); } public CustomViewPager(Context context) { super(context); // TODO Auto-generated constructor stub } public void setCanScroll(boolean isCanScroll) { this.isCanScroll = isCanScroll; } @Override public boolean onTouchEvent(MotionEvent arg0) { // TODO Auto-generated method stub if (isCanScroll) { return super.onTouchEvent(arg0); } else { return false; } } @Override public boolean onInterceptTouchEvent(MotionEvent arg0) { // TODO Auto-generated method stub if (isCanScroll) { return super.onInterceptTouchEvent(arg0); } else { return false; } } @Override public void setCurrentItem(int item, boolean smoothScroll) { //表示切换的时候,不需要切换时间。解决滑动和切换多页面闪烁的问题 super.setCurrentItem(item, smoothScroll); } @Override public void setCurrentItem(int item) { super.setCurrentItem(item, false); } }
2.res---layout布局中使用自定义ViewPager
<com.example.test.diyview.CustomViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/vp_myvp" />
通过自定义ViewPager控件super.setCurrentItem(item, smoothScroll);(表示切换的时候,不需要切换时间。解决切换多页面闪烁的问题),希望对大家的工作和学习有所帮助。