【问题标题】:Check ListView Position inside a ScrollView检查 ScrollView 内的 ListView 位置
【发布时间】:2014-12-18 04:15:27
【问题描述】:

我在ScrollView 中有一个ListView。它们都是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,我将无法滚动备份,我需要点击 ScrollView 的某些部分才能回去吧。

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

我尝试了很多选项,得到了v.getScrollY()v.getY()event.getY(),但如果我在我的列表顶部,所有选项都不会给我。 myListView.getFirstVisiblePosition() 也没有给我正确的检查。

【问题讨论】:

    标签: android listview scrollview ontouchlistener motionevent


    【解决方案1】:

    setOnTouchListener 的绝妙技巧。 我确切知道的一件事是,将 listView 放入 ScrollView 是一种非常糟糕的做法,谷歌不建议这样做。你应该改变你的布局。尽量避免在 ScrollView 中使用 ListView。 ListView 总是将焦点放在其父级上,这就是它无法滚动的原因。

    【讨论】:

      猜你喜欢
      • 2010-12-05
      • 1970-01-01
      • 2015-07-29
      • 2013-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多