【问题标题】:Android three levels recyclerviewAndroid 三级recyclerview
【发布时间】:2017-01-06 07:34:39
【问题描述】:

我一直在困惑这个问题......

在我的活动中,我有一个带有行适配器(垂直)的 recyclerview。在每一行中,我都有一个带有面板适配器(水平)的 recyclerview。在每个面板中,我都有一个带有项目适配器(垂直)的 recyclerview。

一切正常,但是当我尝试滚动项目时,行正在滚动,而不是项目。

我想要的是项目会滚动,除非面板中没有足够的项目可以滚动,(如面板 B3 中),那么行应该滚动。如果面板中有足够的项目可以滚动并且我到达面板中项目的顶部或底部,那么行应该开始滚动。

谁能指出我正确的方向?

【问题讨论】:

  • 添加截图
  • 当你在另一个verticle内添加verticle scroll或在另一个verticle内添加水平滚动时会发生这种情况,因为触摸拦截器,无论是RecyclerView/ ListView/ ScrollView。您的 UI 未遵循标准设计模式。我们应该始终避免同方向的嵌套滚动
  • 是的,你是对的。我一直在考虑这个问题,在大多数情况下,我认为面板中不会有很多项目,所以你不能在那里垂直滚动。只有在有更多项目的情况下,我有两个选择。首先按面板将其全屏打开,以便能够看到剩余项目或滚动。第二种选择对我来说似乎更好。但通常情况下,是的,你是对的。
  • 第三个选项可能是我增加面板的高度以防有更多项目。也许这是一个很好的解决方案。

标签: android android-recyclerview


【解决方案1】:

确保您的布局在 NestedScrollView 内:

<android.support.v4.widget.NestedScrollView
        android:id="@+id/nScrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true">

        <FrameLayout ...>
        <android.support.v7.widget.RecyclerView
           .........
        </android.support.v7.widget.RecyclerView>
        </FrameLayout >
</android.support.v4.widget.NestedScrollView>

【讨论】:

  • 我为保存行的 recyclerview 和保存面板的 recyclerview 做了这个。这些项目仍然没有滚动
【解决方案2】:

尝试:

mRecyclerView.setNestedScrollingEnabled(true);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多