美文网首页Android笔记
Android ListView列表上下滑动趋势方向测算

Android ListView列表上下滑动趋势方向测算

作者: Cedric_h | 来源:发表于2019-07-26 00:21 被阅读0次

    原文:https://blog.csdn.net/uyy203/article/details/78925559

        private class JudgeScrollType implements AbsListView.OnScrollListener
        {
            private int trendY = 0;
            private int TotalTrendY = 0;
            private int lastTop = 0;
            private int top = 0;
            private int lastTag = 0;
            private int count = 0;
            private int maxCount = 5;
            private int duration = 300;
    
            @Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)
            {
    
    
    
                        if(view.getChildAt(0).getTop() == 0 || firstVisibleItem != lastTag)
                        {
                            top = 0;
                            lastTop = 0;
                            trendY = 0;
                        }
                        else
                        {
                            top = -view.getChildAt(0).getTop();
                        }
    
                        trendY = top - lastTop;
                        lastTop = top;
                        lastTag = firstVisibleItem;
    
    
                        //数据降噪
                        if(top == trendY)
                        {
                            trendY = 0;
                        }
    
                        //取5个趋势值,然后取均值,利用均值作为判断趋势值
                        if(count < maxCount)
                        {
                            TotalTrendY += trendY;
                            count++;
                        }
                        else
                        {
                            trendY = TotalTrendY / count;
    //                      count = 0;
                            TotalTrendY = 0;
                        }
    
                        if((count >= maxCount && trendY < 0) )
                        {
    
                        /**列表下滑时对应操作**/
    
                        }
                        else if(count >= maxCount && trendY > 0 )
    
                        /**列表上滑时对应操作**/
    
                        }
    
                        if(count >= maxCount)
                        {
                            count = 0;
                        }
    
    
    
    
    
    
            }
    
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState)
            {
    
            }
        }
    

    相关文章

      网友评论

        本文标题:Android ListView列表上下滑动趋势方向测算

        本文链接:https://www.haomeiwen.com/subject/aftcrctx.html