检查ScrollView中的ListView位置

时间:2014-12-18 04:15:28

标签: android listview scrollview ontouchlistener motionevent

ListView内有ScrollView。这两者都是Fragment的一部分。

为了捕获以防止ScrollView会影响ListView的滚动,我添加了以下代码:

    myListView.setOnTouchListener(new OnTouchListener() { 
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            v.getParent().requestDisallowInterceptTouchEvent(true);
            return false;
        } 
    }); 

现在他们都工作文件,我可以一直滚动到我的ListView,当我看到我的ListView时,我可以在其中滚动。

我现在的问题是,如果我滚动到ListView的顶部,如果我继续滚动ListView,我无法滚动备份我需要点击{{1}的某些部分能够回去。

我想要做的是检查ScrollView的滚动是否在顶部然后我将能够启用或禁用ListView并允许requestDisallowInterceptTouchEvent接管

我尝试了很多选项,获得了ScrollViewv.getScrollY()v.getY(),但如果我位于我的列表顶部,那么所有人都不会给我。 event.getY()还没有给我正确的检查。

1 个答案:

答案 0 :(得分:0)

使用setOnTouchListener的好方法。 我真正知道的一件事是在ScrollView中放置一个listView是一个非常糟糕的做法,谷歌并不建议这样做。你应该改变你的布局。尽量避免在ScrollView中使用ListView。 ListView始终将焦点放在其父级上,这就是它无法滚动的原因。