1. 程式人生 > >Android ScrollView與ViewPager滑動上下左右衝突

Android ScrollView與ViewPager滑動上下左右衝突

重寫ScrollView

public class CustomScrollView extends ScrollView {


    private GestureDetector mGestureDetector;
    View.OnTouchListener mGestureListener;

    public CustomScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mGestureDetector = new GestureDetector(context, new YScrollDetector());
    }

    public CustomScrollView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        mGestureDetector = new GestureDetector(context, new YScrollDetector());
    }

    public CustomScrollView(Context context) {
        super(context);
        mGestureDetector = new GestureDetector(context, new YScrollDetector());
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return super.onInterceptTouchEvent(ev)
                && mGestureDetector.onTouchEvent(ev);
    }

  
    class YScrollDetector extends SimpleOnGestureListener {
        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2,
                float distanceX, float distanceY) {
            if (Math.abs(distanceY) > Math.abs(distanceX)) {
                return true;
            }
            return false;
        }
    }

}

相關推薦

Android ScrollViewViewPager滑動上下左右衝突

重寫ScrollView public class CustomScrollView extends ScrollView {     private GestureDetector mGestureDetector;     View.OnTouchListener m

ScrollViewviewpager滑動事件衝突,點選事情衝突解決方案

在產品適配的時候我加了ScrollView,但是產品提出了一個向上輪播需求 首先把豎直向上的viewpager粘出來: package com.cfiigroup.zhehui.hepaidai.view; import android.view.MotionEvent; impo

Android ScrollViewListView,GridView共存衝突解決方案

我們在真實專案中通常會遇到ListView或者GridView巢狀在ScrollView中問題。但是做的時候會發現,一旦兩者進行巢狀,即會發生衝突。得不到我們希望的效果。由於ListView和GridView本身都繼承於ScrollView,一旦在ScrollView中巢

SwipeRefreshLayoutViewPager滑動事件衝突解決

問題描述:開發中發現,SwipeRefreshLayout的下拉重新整理,與ViewPager開發的banner的左右滑動事件有一點衝突,導致banner的左右滑動不夠順暢。很容易在banner的左右滑動的過程中,觸發SwipeRefreshLayout的下拉重新整理,從而導

android-Ultra-Pull-To-Refresh重新整理框架viewpager滑動衝突解決方案

文章概述: 問題描述: liaohuqiu 開源的 android-Ultra-Pull-To-Refresh 下拉重新整理框架,在使用時,會經常遇到巢狀banner的使用場景,即:子ViewGroup巢狀ViewPager使用,例如: <c

解決ScrollViewViewPager、ListView的滑動衝突

public class CommonScrollView extends ScrollView { private float xLast,yLast,xDistance,yDistance; // ScrollView的子View, 也是ScrollV

Android PtrFrameLayout RecyclerView滑動衝突解決方法

原文地址:https://blog.csdn.net/Simon_Crystin/article/details/80926795   1.背景 2.主要程式碼邏輯 2.1 父View程式碼(PtrFrameLayout) 2.2 子View關鍵程式碼(RecyclerView)

NestedScrollViewViewpager滑動衝突

最近實現需求Viewpager實現載入視訊和圖片實現輪播,所實現的介面需要巢狀NestedScrollView,所出現的問題就是:Viewpager可以實現自動輪播,但是不能實現手動輪播,這是我很鬱悶,一想肯定是滑動衝突了,網上也找了很多的解決辦法。後邊得到 NestedScrollView

Android6.0 ScrollViewRecyclerView滑動衝突的問題

前記:我有個這樣的需求,在一個LinearLayout中Vertical展示倆個不同的recycleview,但是要求倆個recycleview都全部展示出來; 在Android5.0的系統中,我的做法是,只要在LinearLayout外面加一個ScrollV

android 圖片縮放後劃屏拖動圖片Viewpager切換Item衝突(拖動圖片的事件相應被遮蔽)問題解決

/** * 設定拖拽狀態下的Matrix * @param event */ public void setDragMatrix(MotionEvent event) { if(isZoomChanged

SwipeRefreshLayoutViewPager滑動事件沖突解決

over 能夠 pre touch listener cti pan out 觸發 問題描寫敘述:開發中發現,SwipeRefreshLayout的下拉刷新,與ViewPager開發的banner的左右滑動事件有一點沖突,導致banner的左右滑動不夠順暢。非常easy在

Android之禁止ViewPager滑動

當我們想在同一個Activity或者Fragment中展示多個頁面時往往會用到ViewPager,通過滑動,我們可以很方便地在不同的頁面中切換。但是在某些情況下我們可能並不需要通過滑動來切換ViewPager中的頁面(比如為了避免跟頁面內的某些觸控事件衝突),而

Android仿IOS ViewPager滑動進度條

最近做專案,碰到如下的需求:ViewPager分頁,如果是6頁(包括6頁)就用圓點,如果是6頁以上就用進度條來切換。前面一種互動方法最常見,用小圓點來表示當前選中的頁面,這些小圓點稱為導航點,很多App都是這種實現方式。當用戶第一次安裝或升級應用時,都會利用導航頁面告訴使用者

android FragmentViewPager,自畫指示器的一個應用

示例圖: main public class TestActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener, ViewPager.OnPage

Android ScrollView監聽滑動到頂部和底部的兩種方式

import android.content.Context; import android.util.AttributeSet; import android.widget.ScrollView; /** * 監聽ScrollView滾動到頂部或者底部做相關事件攔截 */ public class S

完美解決HorizontalScrollViewListView滑動事件衝突

HorizontalScrollView與ListView滑動事件衝突,導致ListView下拉不靈敏。下面給出一種比較完美的實現方式,如果是縱向的ScrollView,對應改一下就好了~~上程式碼pa

Android activity+fragment+viewpager滑動頁面實現之TabLayout

build.gradle新增依賴 compile('com.android.support:design:25.1.1') { force = true } 新增依賴之後如果有報錯。可參考 MyFragmentAdapter public class My

ScrollViewGridView滾動發生衝突

   當GridView巢狀在ScrollView裡時,發現GridView只顯示了一行。這是因為GridView有自己的滾動條,而ScrollView也有自己的滾動條,兩者發生了衝突。 解決方法是重寫GridView的OnMesure方法,使其不再出現滾動條。 publi

Android:禁止viewpager左右滑動,去除viewpager切換時動畫,解決viewpager百度地圖滑動衝突

Android自定義viewpager,禁止viewpager左右滑動,去除viewpager切換時動畫,解決viewpager與百度地圖滑動衝突 public class CustomViewPager extends ViewPager { private boolean e

Android TabLayout在viewpager AppBarLayout一起使用時出現tab選中後下劃線滑動緩慢,卡頓異常解決方案

今天早上剛測試發現的一個問題,之前沒有注意到,特別尷尬感覺,之前經常使用TabLayout和viewpager聯動切換碎片,異常的情況如下圖展示: 佈局程式碼如下: <?xml version="1.0" encoding="utf-8"?> <android.s