CoordinatorLayout 的滚动范围

Scroll range of CoordinatorLayout

我想弄清楚如何让 CoordinatorLayout 滚动范围不是屏幕高度。我的布局结构如下:

CoordinatorLayout

-- AppBarLayout

---- CollapsingToolbarLayout (scrollflags: scroll)

------ Toolbar (CollapseMode: parallax)

----- /CollapsingToolbarLayout

-- /AppBarLayout

-- NestedScrollView (Behaviour: appbar_scrolling_view_behavior)

-- /NestedScrollView

/ CoordinatorLayout

即使 NestedScrollView child 高度接近 100dp,当内容根本不应该滚动时,它也可以一直滚动到顶部。

有没有办法影响 CoordinatorLayout 的滚动范围,如果 child 内容是可滚动的,它将滚动,并且只滚动高度所在的范围。

当 child 为 RecyclerView 时,我也看到了这个问题,例如1 50dp 高度 child -> 在这种情况下它根本不应该滚动,但是当 child 计数变大时它应该滚动。

谢谢。

我认为只要布局中有滚动行为并且 collapsingtoolbar 有滚动标志,它总是可以滚动的。

但是你可以试试这个技巧来禁用滚动

使用 link 下面的 AppBarLayout.ScrollingViewBehavior 解决了 NestedScrollView

的问题

https://github.com/natario1/ConstrainedScrollBehavior/blob/master/ConstrainedScrollBehavior.java