转载自:IT驿站 [http://www.blogchen.com ]
本文链接: http://www.blogchen.com/archives/584.html
也许会有人遇到,在这里说下解决方法。方便以后有人纠结这个问题。
开发中经验会遇到滑动里面嵌入滑动的问题,但是这种情况下触摸事件就会发生冲突。导致滑动非常卡,甚至出现程序停止响应。这种情况下我们一般需要重写view。下面给出重新scrollview的方法:
public class CustomScrollView extends ScrollView { private GestureDetector mGestureDetector; View.OnTouchListener mGestureListener; @SuppressWarnings("deprecation") public CustomScrollView(Context context, AttributeSet attrs) { super(context, attrs); mGestureDetector = new GestureDetector(new YScrollDetector()); setFadingEdgeLength(0); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev); } // Return false if we're scrolling in the x direction 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中HorizontalScrollView和ScrollView嵌套滑动卡顿问题的关键在于正确地拦截和处理触摸事件。通过自定义控件并重写onInterceptTouchEvent()和onTouchEvent()方法,我们可以实现精确的事件分发,...
在Android开发中,`HorizontalScrollView`是一个非常重要的布局组件,它允许用户在水平方向上滚动内容,这在创建横向滑动菜单、轮播图或图片画廊等场景中非常常见。本教程将深入探讨如何利用`HorizontalScrollView`...
1. **触摸事件处理**:Android中的滑动通常涉及到`MotionEvent`的ACTION_DOWN、ACTION_MOVE和ACTION_UP事件。在ACTION_DOWN事件中初始化滑动状态,在ACTION_MOVE事件中处理滑动动作,并在ACTION_UP事件中结束滑动。 ...
ScrollView是Android中用于实现垂直滚动的布局容器,它继承自FrameLayout。当ScrollView内的内容高度超过屏幕时,用户可以通过上下滑动来查看超出部分的内容。ScrollView的设计理念是容纳一个单一的子视图,通常是另...
ScrollView 是 Android 中的一个视图组件,用于实现竖向滑动的效果,而 HorizontalScrollView 则用于实现横向滑动的效果。通过组合使用这两个视图组件,我们可以实现上下左右滑动的界面布局。 下面是实现上下左右...
HorizontalListView的实现原理基于Android的ScrollView或HorizontalScrollView,通过自定义ViewGroup进行布局管理,实现了水平方向上的滚动功能。相比于ListView,HorizontalListView的特点包括: 1. **水平滚动**...
因此,避免在`ScrollView`内嵌套另一个`ScrollView`,因为这可能会导致滚动卡顿。同时,对于长文本,可以考虑分段加载或者使用ListView或RecyclerView等高效的数据绑定视图。 2. **触摸反馈**:为滚动视图添加适当...