本篇实现效果:
一般,主页导航页面切换的时候是没有页面滑动的效果的,今天优化一下,自定义适配器,来实现禁止滑动效果,效果如下:
目录:
逻辑功能实现
自定义NoScrollViewPager 继承Viewpager 并重写其中的几个方法:
NoScrollViewPager.class:
package com.example.myapp.adapter;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import androidx.viewpager.widget.ViewPager;
/**
* @ProjectName: MyApp
* @Package: com.example.myapp.adapter
* @ClassName: NoScrollPagerAdapter
* @Description:
* @Author: liyingxia
* @CreateDate: 2021/4/14 8:56
*/
public class NoScrollViewPager extends ViewPager {
public boolean canScroll = false;
public NoScrollViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
public NoScrollViewPager(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
return canScroll && super.onTouchEvent(ev);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return canScroll && super.onInterceptTouchEvent(ev);
}
@Override
public void setCurrentItem(int item) {
setCurrentItem(item, false);
}
}
activity_main.xml:
接着修改activity_main布局文件,在布局文件中引用自定义的类:
将:
<androidx.viewpager.widget.ViewPager/>
修改为下面自定义的类包名,注意包括类名