2 a1388463837 a1388463837 于 2013.03.30 18:39 提问

求教怎么在滚动scrollview的时候实时获取他滚动的距离

我打算做一件很蛋疼的事,那就是scrollview嵌套scrollview(其实不是真的scrollview,而是一个用scrollview做的瀑布流控件),外层scrollview的作用是把页面的头部给滚出屏幕,然后把内容卡在顶部(如果知道美丽说的话,请参考美丽说“我”这个模块的页面效果(要登录才有)一模一样的需求),但是因为事件冲突,我打算重写scrollview,监听scrollview的滚动距离来,只要高过头部就把外层的scrollview的触摸监听给干掉。不过现在遇到个问题,就是不知道scrollview怎么实时监控他的滚动距离,用getscroll方法试过,用computeVerticalScrollOffset方法试过,不过都只有在手指离开之后才能获得距离,但不到划过去就卡住的效果,不知道有没有什么方法能够实时获得scrollview的滚动位置的呢?求指点。
ps:如果有大神知道怎么做到美丽说那种效果的更好,求指导

2个回答

u010982006
u010982006   2014.09.02 16:17

scrollView.setOnTouchListener(this);
}

@SuppressLint("NewApi")
@Override
public boolean onTouch(View v, MotionEvent event) {

    if (event.getAction() == MotionEvent.ACTION_MOVE) {
        // 可以监听到ScrollView的滚动事件
        System.out.println(scrollView.getScrollY());
    }
    return false;
}
qq_31190687
qq_31190687   2016.02.17 11:01

/**
* 在Handler中进行图片可见性检查的判断,以及加载更多图片的操作。
*/
private static Handler handler = new Handler() {

    public void handleMessage(android.os.Message msg) {
        MyScrollView myScrollView = (MyScrollView) msg.obj;
        int scrollY = myScrollView.getScrollY();
        // 如果当前的滚动位置和上次相同,表示已停止滚动
        if (scrollY == lastScrollY) {
            // 当滚动的最底部,并且当前没有正在下载的任务时,开始加载下一页的图片
            if (scrollViewHeight + scrollY >= scrollLayout.getHeight()
                    && taskCollection.isEmpty()) {
                myScrollView.loadMoreImages();
            }
            myScrollView.checkVisibility();
        } else {
            lastScrollY = scrollY;
            Message message = new Message();
            message.obj = myScrollView;
            // 5毫秒后再次对滚动位置进行判断
            handler.sendMessageDelayed(message, 5);
        }
    };
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
ScrollView的滚动监听,得到滚动的距离
ScrollView的滚动监听,得到滚动的距离在开发中不免会用到ScrollView
Android 监听ScrollView滑动距离简单处理
android scrollView
android 标题动态变换(listview scrollview 滑动距离计算)
1:android:layout_marginTop="-100dp"给列表头是图片的列表加个这个属性有下拉弹起的效果 2:计算列表下拉的距离(如果所有列表项长度一样的话可行) public int getScrollY() { View c = myPullListView.getChildAt(0); if (c == null) { return 0; } int firstV
[ios]ScrollView中根据滚动距离来判断当前页数
ScrollView中通过当前滚动的相对距离contentOffset属性除以页面宽度来获取当前页数,主要用于滚动视图时让导航栏按钮或标题同步切换;int page=(int)scrollView.contentOffset.x/kWidth+0.5; UIButton *button=[self.view viewWithTag:page+100]; [button setSel
iOS自定义scrollview的滑动停止位置
- (CGPoint)nearestTargetOffsetForOffset:(CGPoint)offset {     CGFloat pageSize = _cellWidth + 7.5f;     NSInteger page = roundf(offset.x / pageSize);     CGFloat targetX = pageSize * p
获取scrollview当前滚动到某页的代码,已经滚动中计算的代码
//UIScrollViewDelegate方法 - (void)scrollViewDidEndDecelerating:(UIScrollView *)sView { if (sView.tag == 1) { NSInteger index = fabs(sView.contentOffset.x) / sView.frame.size.width;
计算ScrollView控件的滑动距离
首先添加响应事件:self:addTouchEventListener(self.m_scroll, onScrollEvent)  在ScrollView移动的时候调用onScrollViewChangeMsg函数 local function onScrollEvent(l_u, l_evntype, self)     self.m_currEventType = l_evnty
scrollview记录滚动位置
function DockView:initEvent() EventManager:registerEvent( self ) local function onNodeEvent( event ) if event == "enter" then self:updateDataList() self:update
自定义ScrollView,实现ScrollView滑动监听并记录滑动位置。
Android自带的ScrollView对于滑动监听接口没有开放,然而在许多时候记录ScrollView的滑动位置,实现这个功能比较简单,自己实现一个ObserveScrollView类来继承ScrollView,然后重写里面的onScrollChanged(int l, int t, int oldl, int oldt)方法,本方法就是ScrollView的滑动监听,接着声明一个接口,在重写的
android ScrollView滚动距离和判断滚动停止状态
今天很高兴,自己解决了判断ScrollView滚动停止的监听,现在分享给大家。 因为ScrollView没有像listView中的setOnScrollListener()监听,当然也就没有SCROLL_STATE_IDLE等。 解决的问题: 公司项目需要在一个列表中,类似listView,因为业务要求,这个列表是用拼凑的方法,拼凑出来的,所以外层包裹一层ScrollView。 现在公司要