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;

}

}

}

时间: 2024-12-16 08:28:03

Android ScrollView与ViewPager滑动上下左右冲突的相关文章

解决ScrollView嵌套viewpager滑动事件冲突问题

重写ScrollView 第一种方案能解决viewpager的滑动问题,但是scrollView有时会滑不动 public class VerticalScrollView extends ScrollView { private GestureDetector mGestureDetector; public VerticalScrollView(Context context, AttributeSet attrs){ super(context, attrs); mGestureDetec

(转)ViewPager,ScrollView 嵌套ViewPager滑动冲突解决

ViewPager,ScrollView 嵌套ViewPager滑动冲突解决 本篇主要讲解一下几个问题 粗略地介绍一下View的事件分发机制 解决事件滑动冲突的思路及方法 ScrollView 里面嵌套ViewPager导致的滑动冲突 ViewPager里面嵌套ViewPager 导致的滑动冲突 轮播图的几种实现方式 先看一下效果图 ScrollView里面嵌套ViewPager ViewPager里面嵌套ViewPager View的 事件分发机制 这篇博客大打算详细讲解View的事件分发机制

完美解决ScrollView嵌套ViewPager滑动失效和无法正常滑动冲突问题

/******************************************************************************* * Copyright 2011, 2012 Chris Banes. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the Li

Android: ScrollView监听滑动到顶端和底端

在项目中需要监听ScrollView滑动到顶端和底端的时候以实现自己的ScrollView,那么怎样去监听呢?今天查看了一下ScrollView的源码,找到了一种方法.先看一下源码中的overScrollBy()方法: 1 protected boolean overScrollBy(int deltaX, int deltaY, 2 int scrollX, int scrollY, 3 int scrollRangeX, int scrollRangeY, 4 int maxOverScro

Android 快速实现 ViewPager 滑动页卡切换(可用作整个 app上导航)

我记得在前面,我写了一篇Android 微信6.1 tab栏图标和字体颜色渐变的实现,如果大家仅仅认为这篇文章的功能只是模仿微信颜色渐变效果,那就大错特错了!认真阅读了这篇文章的朋友,应该知道,这里面代码可用作 app 通用的底部栏导航,通过它能快速的实现类似微信6.0版本以底部导航的 app 整体架构,并且在 MainActivity 中需要编写的代码非常简洁.如果有兴趣的朋友可以去看看. 效果: 今天这篇 blog的内容同样可以拿来做 app 的整体架构,但与前面那篇 blog 不同,不同之

SwipeRefreshLayout与ViewPager滑动事件冲突解决

问题描述: 开发中发现,SwipeRefreshLayout的下拉刷新,与ViewPager开发的banner的左右滑动事件有一点冲突,导致banner的左右滑动不够顺畅.很容易在banner的左右滑动的过程中,触发SwipeRefreshLayout的下拉刷新,从而导致banner左右滑动的体验很差. 解决方案: 可以在ViewPager的滑动时候设置SwipeRefreshLayout暂时不可用,ViewPager的滑动效果就变得很流畅了. 代码示例: mViewPager.setOnTou

解决ListView和ScrollView同时使用时滑动的冲突问题

ScrollView外面包裹了一个ListView,解决其滑动冲突问题: 只需自定义ListView,命名MyListView: public class MyListView extends ListView { public MyListView(Context context) { super(context); } public MyListView(Context context, AttributeSet attrs) { super(context, attrs); } publi

Android ScrollView嵌套HorizontalScrollView 滑动问题 ScrollView包含GridView显示问题

今天项目使用到ScrollView嵌套HorizontalScrollView,ScrollView里包含GridView,发现几个问题很经典,在此记录: 问题1.ScrollView嵌套HorizontalScrollView跳变问题,ScrollView.HorizontalScrollView自动下拉到最后一行: 设置到初始坐标(0,0)解决方法: (时机:数据解析完并且刷新notifyDataSetChanged()之后进行下面代码设置) scrollview.smoothScrollT

android scrollview组件禁止滑动的方法

xml配置: android:id="@+id/sc_freement" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@id/category_line" android:scrollbars="none" android:fadingEdge="none&