Android:ScrollView与NestedScrollView

时间:2016-01-13 18:08:59

标签: android xml android-layout android-scrollview android-nestedscrollview

ScrollViewNestedScrollView之间有什么区别?它们都延伸FrameLayout。我想深入了解他们两者的利弊。

5 个答案:

答案 0 :(得分:138)

NestedScrollView顾名思义是在另一个滚动视图中需要滚动视图时使用的。通常这很难完成,因为系统无法决定滚动哪个视图。

这是NestedScrollView的来源。

答案 1 :(得分:19)

<强> 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

答案 2 :(得分:14)

除了给出的答案中列出的优点外,NestedScrollView优于ScrollView的另一个优点是它与CoordinatorLayout的兼容性。 ScrollView不与CoordinatorLayout合作。您必须使用NestedScrollView来获取工具栏的“滚动屏幕外”行为。

Toolbar will not collapse with Scrollview as child of CoordinatorLayout

答案 3 :(得分:1)

NestedScrollView就像ScrollView,但是在NestedScrollView中,我们可以将其他滚动视图作为其子视图,例如RecyclerView。

但是,如果将RecyclerView放在NestedScrollView内,则RecyclerView的平滑滚动会受到干扰。因此,要使平滑滚动恢复原状,就可以了:

ViewCompat.setNestedScrollingEnabled(recyclerView, false);

在为recyclerView设置适配器后,在行上方放置

答案 4 :(得分:1)

我认为使用嵌套滚动视图的好处之一是协调器布局 仅侦听嵌套滚动事件。因此,如果前。您希望工具栏在滚动活动内容时向下滚动,仅当您在布局中使用嵌套滚动视图时才会向下滚动。如果您在布局中使用普通的滚动视图,则用户滚动内容时工具栏将不会滚动。