本篇实现效果:

一般,主页导航页面切换的时候是没有页面滑动的效果的,今天优化一下,自定义适配器,来实现禁止滑动效果,效果如下:

android 屏蔽touch android 屏蔽广告开发_项目实战

目录:

android 屏蔽touch android 屏蔽广告开发_viewpager_02

逻辑功能实现

自定义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/>

修改为下面自定义的类包名,注意包括类名

android 屏蔽touch android 屏蔽广告开发_项目实战_03