`
titanseason
  • 浏览: 181846 次
社区版块
存档分类
最新评论

ScrollView内嵌ViewPager导致ViewPager滑动困难问题

阅读更多

ScrollView内嵌ViewPager导致ViewPager滑动困难问题

 

    解决方式:重写ScrollView,然后在xml中定义布局的时候,使用自定义的PagerScrollView而不是系统的ScrollView即可。

    重点在于重写父类的onInterceptTouchEvent方法

 

import android.content.Context;
import android.util.AttributeSet;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.widget.ScrollView;

public class PagerScrollView extends ScrollView {

	private GestureDetector mGestureDetector;

	public PagerScrollView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		init();
	}

	public PagerScrollView(Context context) {
		super(context);
		init();
	}

	public PagerScrollView(Context context, AttributeSet attrs) {
		super(context, attrs);
		init();
	}

	private void init() {
		mGestureDetector = new GestureDetector(getContext(),
				new YScrollDetector());
		setFadingEdgeLength(0);
	}

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

	private 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;
		}
	}
}

 

分享到:
评论
1 楼 SSB4455 2013-10-30  
遇到同样的问题
感谢前辈
好用 未发现其他的异常

相关推荐

    研究ScrollView嵌套ViewPager问题的Demo

    然而,当ScrollView嵌套ViewPager时,可能会遇到一些问题,这些问题主要集中在内容无法正常显示和滑动冲突上。 首先,我们来探讨为什么ScrollView嵌套ViewPager会导致ViewPager中的内容无法显示。这主要是因为...

    scrollview嵌套viewpager不显示、自适应高度

    自定义viewpager解决scrollview嵌套viewpager不显示和高度自适应

    ScrollView嵌套ViewPager和ListView

    ScrollView嵌套ViewPager,ViewPager横向滑动时容易上下滚动处理; ScrollView嵌套ListView,ListView滚动事件处理,可滚动; ScrollView子控件获取焦点后自动置顶问题处理。 ListView滚动到顶或到底事件监听。

    ScrollView嵌套ViewPager,可滑动,可动态设置ViewPager高度

    然而,ScrollView并不支持嵌套滑动,即在其内部添加可以水平滑动的视图时,可能会导致滑动冲突。 这就是ViewPager的作用所在。ViewPager是一种可以展示多个Fragment或者布局的视图,通过左右滑动实现页面间的切换,...

    Scrollview+ViewPager(自动滚动)

    Scrollview+ViewPager(自动滚动) 一个界面类,2个重写View类,一个实体类,一个适配器类 实现了Scrollview下桥套ViewPager自动滚动,如果需要下拉刷新,自己可以替换成其它的开源控件

    ScrollView兼容ViewPager代码demo

    在这个"ScrollView兼容ViewPager代码demo"中,开发者可能面临的问题是如何在ScrollView内嵌入一个ViewPager,因为这两个组件本身都支持滚动,所以在组合使用时可能会产生冲突,导致滚动行为不正常。解决这个问题的...

    Scrollview_ViewPager_ListView

    本篇将深入探讨在ScrollView中嵌套ViewPager和ListView时遇到的问题以及相应的解决方案。 首先,ScrollView是一个可以容纳多个视图并允许用户滚动查看的布局容器。它可以包含一个或多个可滚动的组件,但通常不推荐...

    ScrollingTricks效果 ScrollView嵌套Viewpager嵌套Listview

    一个特效Demo 具体看博客http://blog.csdn.net/liubo20140401/article/details/47907039 一个向上滑动 tab固定顶部 scrollview中嵌套viewpager嵌套listview 还有回到顶部

    Android代码-TouchDemo

    ScrollView 里面嵌套ViewPager导致的滑动冲突 ViewPager里面嵌套ViewPager 导致的滑动冲突 轮播图的几种实现方式 文章首发地址CSDN:http://blog.csdn.net/gdutxiaoxu/article/details/52939127 先看一下效果图 ...

    scrollview嵌套viewpager嵌套fragmetn嵌套recyclerview的demo

    然而,当`ScrollView`与其他可以滚动的组件(如`ViewPager`)一起使用时,会出现滑动冲突,即两个组件都试图响应用户的滑动操作,导致滚动行为混乱。 `ViewPager`通常用于实现页面滑动效果,常用于展示多个`...

    Android:ScrollView中嵌套ViewPager和ListView示例

    但需要注意的是,由于ScrollView默认会处理所有子视图的滚动行为,而ViewPager本身也有自己的滚动机制,这可能导致滚动冲突。为了解决这个问题,我们可以使用`android:nestedScrollingEnabled="true"`属性,使得...

    ScrollView+TabLayout+ViewPager+RecyclerView 嵌套实现布局

    手动实现仿京东发现页面效果,使用布局嵌套完成,包括ScrollView+TabLayout+ViewPager+RecyclerView,最后有遗留问题需要处理。详情见博客https://blog.csdn.net/hq942845204/article/details/88844272

    ScrollViewWithViewPager:研究Android ScrollView嵌套ViewPager问题

    当需要在一个页面中同时展示多个可滑动的视图,并且整个页面还需要支持垂直滚动时,开发者可能会尝试将ScrollView和ViewPager进行嵌套。然而,这种组合往往会导致一些问题,因为它们的滚动机制存在冲突。 在...

    scrollview与listview,viewpager共存

    当在一个ScrollView内使用ViewPager时,问题主要在于ScrollView可能会覆盖ViewPager的滑动事件,导致ViewPager无法正常工作。 解决ScrollView与ListView、ViewPager共存的问题,有以下几种策略: 1. **避免嵌套**...

    ScrollView+ViewPager+ListView或RecyclerView

    对于`ScrollView`和`ViewPager`的组合,由于`ScrollView`无法直接感知内部`ViewPager`的滑动,所以“加载更多”通常需要自定义`ViewPager`或监听`ViewPager`的滑动事件来实现。 总之,`ScrollView`、`ViewPager`、`...

    ScrollView+ViewPager自定义控件

    首先,`ScrollView`和`ViewPager`不能直接嵌套使用,因为两者都具有滚动功能,会导致冲突。通常,我们需要通过自定义控件或者布局管理器来解决这个问题。一种常见的方法是创建一个新的ViewGroup,继承自`FrameLayout...

    Android ScrollView嵌套TabLayout+ViewPager

    亲测成功,可以直接嵌套项目中 ScrollView嵌套TabLayout+ViewPager解决滑动冲突,已进行重点标注 ViewPager会根据frament的界面高度进行展示,进行framnet的高度测量 嵌套冲突已全部解决

    自定义ViewPager,完美解决ListView和ScrollView事件冲突

    自定义的ViewPager,可以实现页面之前的相互切换,可以...同时该ViewPager解决了传统ViewPager和ListView,ScrollView滑动冲突问题,当然ListView的滑动冲突实在ScrollView中解决的。实践表明,滑动切换效果较好。

    scrollview+viewPager+listview

    在Android开发中,`ScrollView`、`ViewPager`和`ListView`是三种常见的视图组件,它们各自有不同的功能和用途,但有时需要将它们结合起来以实现更复杂的用户界面。标题"scrollview+viewPager+listview"揭示了这样一...

Global site tag (gtag.js) - Google Analytics