【问题标题】:How to disable internal scrolling of a recyclerview but maintain outer list scrolling? (as shown in the material design guidelines)如何禁用 recyclerview 的内部滚动但保持外部列表滚动? (如材料设计指南中所示)
【发布时间】:2018-12-07 15:29:01
【问题描述】:

这是我想要实现的目标: Link to google's material design guide

在我的例子中,我在一个包含线性布局的滚动视图中有多个卡片。我没有使用回收站视图,因为卡片的数量始终大致相同(低于 10 个)。其中一张卡片包含两个 recyclerviews,其中显示了例如 cmets 的列表。问题是我无法找到一种方法来禁用内部 recyclerview 的滚动,而不会导致它根本不滚动并显示不完整的数据。

感谢您的帮助!

【问题讨论】:

  • 如果不需要滚动内容,为什么还要使用 RecyclerView?
  • @Eselfar 我想让内容滚动,但不在另一个窗口中,请参阅上面提到的材料指南
  • “在另一个窗口中”是什么意思?您是否在其他地方使用相同的布局?
  • @Eselfar 看看材料指南中的两个例子,我有右边的工作,但不知道如何实现左边的
  • 是的,这就是我要说的。如果您不希望内容滚动,为什么要使用 RecyclerView?

标签: android android-recyclerview material-design android-cardview


【解决方案1】:

使用 NestedScrollView 并将您的 RecyclerView 放入其中。

如果您希望 RecyclerView 成为 NestedScrollView 的滚动部分,请将嵌套滚动设置为 false。

NestedScrollView nestedScrollView = findViewById(R.id.myNestedScrollView);
nestedScrollView.setNestedScrollingEnabled(false);

如果你想要一个独立的滚动,你不需要做任何事情,因为嵌套滚动默认设置为 true。

【讨论】:

  • 这个配置下RecyclerView是如何渲染的?它是否仍然回收视图或显示整个内容?
  • 我目前无法测试它来给你一个准确的答案,但如果 R​​ecyclerView 容器填满可见屏幕,我会说它可以。这很容易在调试模式下进行测试。
猜你喜欢
  • 1970-01-01
  • 2017-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-27
  • 2015-11-24
  • 1970-01-01
相关资源
最近更新 更多