文章导航
一、【Android项目实战 | 从零开始写app(一)】 创建项目
二、【Android项目实战 | 从零开始写app(二)】实现闪屏页,启动app
三、【Android项目实战 | 从零开始写app(三)】实现引导页,进入登录or主页面
四、【Android项目实战 | 从零开始写app(四)】Okhttp+Gson实现服务端登录验证功能
五、【Android项目实战 | 从零开始写app(五)】okhttp+gson实现服务端注册功能
六、【Android项目实战 | 从零开始写app(六)】用TabLayout+ViewPager搭建App 框架主页面底部导航栏
七、【Android项目实战 | 从零开始写app(七)】优化主页导航栏,禁用主页页面滑动切换效果
八、【Android项目实战 | 从零开始写app(八)】实现app首页广告轮播图切换和搜索跳转
九、【Android项目实战 | 从零开始写app(九)】实现app首页热门推荐
十、【Android项目实战 | 从零开始写app(十)】实现app首页九宫格服务分类点击跳转
十一、【Android项目实战 | 从零开始写app(11)】实现新闻模块数据的解析
十二、【Android项目实战 | 从零开始写app(12)】实现服务页面数据的解析
十三、【Android项目实战 | 从零开始写app(13)】实现用户中心模块登录退出登录&信息修改&个人订单列表查看…
十四、【Android项目实战 | 从零开始写app(14)】实现智慧建党模块…
本篇实现效果:
一般,主页导航页面切换的时候是没有页面滑动的效果的,今天优化一下,自定义适配器,来实现禁止滑动效果,效果如下:
目录:
逻辑功能实现
自定义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/>
修改为下面自定义的类包名,注意包括类名
转载:https://blog.csdn.net/weixin_43853746/article/details/115689794