文章導航
一、【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://www.uj5u.com/yidong/277511.html
標籤:其他
上一篇:JSBridge橋接原理
下一篇:【Android專案實戰 | 從零開始寫app (六) 】用TabLayout+ViewPager搭建App 框架主頁面底部導航欄
