当前位置 博文首页 > 李猫er:【Android项目实战 | 从零开始写app (七) 】优化主页导

    李猫er:【Android项目实战 | 从零开始写app (七) 】优化主页导

    作者:[db:作者] 时间:2021-07-08 13:03

    本篇实现效果:

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

    文章导航

    一、【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(九)】Tablayout+ViewPager实现页面分类顶部标题页面联动切换

    十、【Android项目实战 | 从零开始写app(十)】Okhttp+glide+json+ListView实现新闻模块数据的填充显示

    十一、【Android项目实战 | 从零开始写app(十一)】实现app首页智慧服务页面服务分类数据的解析及点击跳转

    十二、【Android项目实战 | 从零开始写app(十二)】实现app首页智慧服务&热门推荐&热门主题、新闻

    十三、【Android项目实战 | 从零开始写app(十三)】实现用户中心模块清除token退出登录&信息修改等功能

    十四、【Android项目实战 | 从零开始写app(十四)】实现图片发布模块 | 必知必会之调用系统相机拍照、相册

    十五、【Android项目实战 | 从零开始写app(教程汇总)】Android 项目实战系列汇总、源代码


    目录:
    在这里插入图片描述

    逻辑功能实现

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

    修改为下面自定义的类包名,注意包括类名
    在这里插入图片描述

    cs