Answers:
NestedScrollView
顾名思义,当在另一个滚动视图中需要滚动视图时使用。通常,由于系统将无法确定要滚动的视图,因此很难实现。
这是NestedScrollView
进来的地方。
除了嵌套滚动 之外,NestedScrollView
还添加了一项主要功能,该功能甚至可以使它在嵌套上下文之外变得有趣:它支持OnScrollChangeListener
。OnScrollChangeListener
在原始ScrollView
API 23以下添加一个,需要子类化ScrollView
或混乱ViewTreeObserver
,ScrollView
这通常意味着比子类还要做更多的工作。有了NestedScrollView
它可以用做内置的二传手。
除了给出的答案中列出的优点之外,NestedScrollView与ScrollView相比的另一优点是它与CoordinatorLayout的兼容性。ScrollView与CoordinatorLayout不配合。您必须使用NestedScrollView来获得工具栏的“屏幕外滚动”行为。
NestedScrollView
NestedScrollView和ScrollView一样,但是在新旧版本的Android上,它都同时充当嵌套滚动父级和子级。默认情况下启用嵌套滚动。
https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html
滚动视图
用户可以滚动的视图层次结构的布局容器,允许它大于物理显示。ScrollView是一个FrameLayout,这意味着您应该在其中放置一个包含所有要滚动内容的子级;这个孩子本身可能是具有复杂对象层次结构的布局管理器
https://developer.android.com/reference/android/widget/ScrollView.html
NestedScrollView就像ScrollView,但是在NestedScrollView中,我们可以将其他滚动视图作为其子级,例如RecyclerView。
但是,如果将RecyclerView放在NestedScrollView中,则会干扰RecyclerView的平滑滚动。因此,要使平滑滚动恢复正常运行,请考虑以下技巧:
ViewCompat.setNestedScrollingEnabled(recyclerView, false);
在为recyclerView设置适配器后,将其置于行上方。
我认为使用嵌套滚动视图的好处之一是协调器布局仅侦听嵌套滚动事件。因此,如果前。您希望工具栏在滚动活动内容时向下滚动,仅当您在布局中使用嵌套滚动视图时才会向下滚动。如果在布局中使用普通滚动视图,则用户滚动内容时工具栏将不会滚动。