【问题标题】:Nested scrolling : ListView inside a RecyclerView嵌套滚动:RecyclerView 内的 ListView
【发布时间】:2015-05-16 13:01:45
【问题描述】:

我正在构建一个 android 应用程序,现在它有一个主要的回收器视图(填充了项目,这些项目是用 item.xml 布局的),并且在每个 item.xml 中都有一个 listView。

我怎样才能在这个列表视图中进行滚动,因为现在应用程序只监听回收器视图的滚动?

我已经尝试了下面的行,但它不起作用:

 android:nestedScrollingEnabled="true"

非常感谢您的帮助:)!

【问题讨论】:

  • 有一个 Google I/O 视频,他们的开发人员不推荐这种技术。除此之外,其他开发人员在 ScrollView 类中尝试了 Listview。它比 RecyclerView 更简单,而且更老。
  • 我不明白...你的解决方案是什么?
  • 我没有代码解决方案,因为我什至不建议这样做,正如我之前暗示的那样。您的帖子缺少代码或布局 xml,因此没有引起足够的关注。而且很难提出任何修复建议。
  • @the-original-android 您可能将缺少代码/xml 与泛化混淆了。我的代码去掉了任何令人困惑和特殊的东西,只是:recyclerview 中的列表视图。当我触摸它时,我希望能够在列表视图内滚动。 就这么简单。

标签: android listview android-listview android-recyclerview


【解决方案1】:

我是这样解决的:

  mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
            @Override
            public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
                if(rv.getChildCount() > 0) {
                    View childView = rv.findChildViewUnder(e.getX(), e.getY());
                    if(rv.getChildPosition(childView) == [listview position]) {
                        int action = e.getAction();
                        switch (action) {
                            case MotionEvent.ACTION_DOWN:
                                rv.requestDisallowInterceptTouchEvent(true);
                        }
                    }
                }

                return false;
            }

            @Override
            public void onTouchEvent(RecyclerView rv, MotionEvent e) {

            }
        });

【讨论】:

    猜你喜欢
    • 2020-09-07
    • 2018-02-22
    • 1970-01-01
    • 2016-09-15
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 2021-06-10
    相关资源
    最近更新 更多