android:ScrollView vs NestedScrollView

Chi*_*oni 124 xml android android-layout android-scrollview android-nestedscrollview

ScrollViewNestedScrollView实际有什么区别?我用过他们两个.两者都延伸了FrameLayout.我想深入了解他们两人的利弊.如果有人可以请帮助我.谢谢.

Ros*_*han 172

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

这是NestedScrollView进来的地方.


Fab*_*ann 27

除了嵌套滚动之外 NestedScrollView还添加了一个主要功能,它甚至可以使它在嵌套上下文之外变得有趣:它已经构建了支持OnScrollChangeListener.添加OnScrollChangeListener到原来的ScrollView 低于API 23所需的子类ScrollView与周围搞乱ViewTreeObserver了的ScrollView这往往意味着比子类更多的工作.有了NestedScrollView它可以用做内置的二传手.


Ami*_*ela 20

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


小智 18

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

使用Scrollview作为CoordinatorLayout的子项时,工具栏不会崩溃


Uma*_*ooq 5

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

但是,如果将RecyclerView放在NestedScrollView内,则会干扰RecyclerView的平滑滚动。因此,要使平滑滚动恢复正常运行,请考虑以下技巧:

ViewCompat.setNestedScrollingEnabled(recyclerView, false);
Run Code Online (Sandbox Code Playgroud)

在为recyclerView设置适配器后,将其放在上方。

  • 请记住,这样做(嵌套中的 recyclerView)在布局传递/测量方面效率相当低。测试一下,您将看到 RV 如何停止“回收”视图。 (5认同)