`
天天向上1989
  • 浏览: 421476 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

【转】android中scrollview嵌套HorizontalScrollView导致横向滑动卡顿现象解决

 
阅读更多

转载自: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;
        }
    }
}
 
分享到:
评论

相关推荐

    Androiod中解决HorizontalScrollView和ScrollView相互嵌套导致滑动卡的方法

    总结来说,解决Android中HorizontalScrollView和ScrollView嵌套滑动卡顿问题的关键在于正确地拦截和处理触摸事件。通过自定义控件并重写onInterceptTouchEvent()和onTouchEvent()方法,我们可以实现精确的事件分发,...

    HorizontalScrollView 横向滑动完美解决

    在Android开发中,`HorizontalScrollView`是一个非常重要的布局组件,它允许用户在水平方向上滚动内容,这在创建横向滑动菜单、轮播图或图片画廊等场景中非常常见。本教程将深入探讨如何利用`HorizontalScrollView`...

    android srcoll HorizontalScrollView scrollview

    1. **触摸事件处理**:Android中的滑动通常涉及到`MotionEvent`的ACTION_DOWN、ACTION_MOVE和ACTION_UP事件。在ACTION_DOWN事件中初始化滑动状态,在ACTION_MOVE事件中处理滑动动作,并在ACTION_UP事件中结束滑动。 ...

    Android UI系列-----ScrollView和HorizontalScrollView的详解

    ScrollView是Android中用于实现垂直滚动的布局容器,它继承自FrameLayout。当ScrollView内的内容高度超过屏幕时,用户可以通过上下滑动来查看超出部分的内容。ScrollView的设计理念是容纳一个单一的子视图,通常是另...

    android实现上下左右滑动界面布局

    ScrollView 是 Android 中的一个视图组件,用于实现竖向滑动的效果,而 HorizontalScrollView 则用于实现横向滑动的效果。通过组合使用这两个视图组件,我们可以实现上下左右滑动的界面布局。 下面是实现上下左右...

    HorizontalListView

    HorizontalListView的实现原理基于Android的ScrollView或HorizontalScrollView,通过自定义ViewGroup进行布局管理,实现了水平方向上的滚动功能。相比于ListView,HorizontalListView的特点包括: 1. **水平滚动**...

    Text-and-Scrolling-Views

    因此,避免在`ScrollView`内嵌套另一个`ScrollView`,因为这可能会导致滚动卡顿。同时,对于长文本,可以考虑分段加载或者使用ListView或RecyclerView等高效的数据绑定视图。 2. **触摸反馈**:为滚动视图添加适当...

Global site tag (gtag.js) - Google Analytics