【问题标题】:ScrollView in ListView header view not scrollableListView 标题视图中的 ScrollView 不可滚动
【发布时间】:2014-01-13 15:50:32
【问题描述】:

我有一个包裹在 ScrollView 中的 TextView。周围有一些其他的观点。 当我将此视图添加到我的 ListView 标题视图时,我可以滚动 listView,但标题视图中的 scrollView 不再可滚动。 在将它添加到 ListView 标题视图之前,我可以毫无问题地滚动它。

这是一种例外行为吗?我怎样才能让它再次滚动。

我不想听到“不要将 ListView 放入 ScrollView”,这里根本不是这种情况。我有一个独立的标题视图,除了里面的视图之外,我的行为正确。

谢谢!

【问题讨论】:

  • 问题是Touch事件被ListView消费了。所以没有时间去ScrollView
  • 哇,这真的,真的很奇怪。我的意思是,如果我的手指在滚动视图内,则触摸事件应该由目标滚动视图消耗,而不是其他......

标签: android android-listview


【解决方案1】:

这可能对你有用。在列表视图的adapter 中执行以下操作:

scrollview.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {

                    v.getParent().requestDisallowInterceptTouchEvent(true);
                    return false;
                }
            });

并在您的列表视图的活动中执行以下操作:

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

【讨论】:

  • 是的,这就是我在发布问题后所做的。谢谢。
  • 如果有人想以编程方式进行滚动怎么办?
【解决方案2】:

好的,我用这个解决了我的问题

innerScrollViw.setOnTouchListener(new ScrollView.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                view.getParent().requestDisallowInterceptTouchEvent(true);
                return false;
            }
        });

【讨论】:

  • IMO,它应该是默认的,真的,这是例外行为。
猜你喜欢
  • 2013-09-19
  • 1970-01-01
  • 2021-10-28
  • 2013-10-01
  • 2016-09-03
  • 2017-12-04
  • 1970-01-01
  • 2014-05-20
  • 1970-01-01
相关资源
最近更新 更多