android 控件 NestedScrollView

来源:互联网 发布:云数据库安全防护 编辑:程序博客网 时间:2024/05/21 03:55
应该说在MD中,RecyclerView代替了ListView,而NestedScrollView代替了ScrollView,他们两个都可以用来跟ToolBar交互,实现上拉下滑中ToolBar的变化。在NestedScrollView的名字中其实就可以看出他的作用了,Nested是嵌套的意思,而ToolBar基本需要嵌套使用。
CoordinatorLayout 


<!--第一部分:伸缩工具栏-->
AppBarLayout
CollapsingToolbarLayout
ImageView
Toolbar
CollapsingToolbarLayout
AppBarLayout

<!--第二部分:主要内容,NestedScrollView和ScrollView基本功能一致,只不过NestedScrollView可以兼容新的控件-->
NestedScrollView
LinearLayout
NestedScrollView

<!--第三部分:漂浮按钮-->
FloatingActionButton

CoordinatorLayout

总的来说,NestedScrollView是一个简单的控件,作用跟ScrollView基本没差别,关键在于跟ToolBar交互产生的作用,所以应该注意的是,
app:layout_behavior="@string/appbar_scrolling_view_behavior"
这一句,这句话跟CollapsingToolbarLayout中
app:layout_scrollFlags="scroll|exitUntilCollapsed"
对应,系统一旦发现NestedScrollView中有那句话,就会检查其他控件,然后如果有上面这句对应的话,那么滑动效果就是可以实现的。就这一点来说,他的使用基本上和RecyclerView一样。




NestedScrolling的特性可以体现在哪里呢?
比如你使用了Toolbar,下面一个ScrollView,向上滚动隐藏Toolbar,向下滚动显示Toolbar,这里在逻辑上就是一个NestedScrolling


我们了解了CoordinatorLayout的使用,它可以让ToolBar随RecycleView的滑动滑入和划出屏幕,但是在一些其它场景下,我们不一定会用到RecycleView,假设我们只是想显示几个item而已,那该如何解决呢 ?
我们可以使用NestedScrollView来解决,它是support-v4包提供的控件,继承至FrameLayout, 
并实现了NestedScrollingParent,NestedScrollingChild, ScrollingView接口. 
它的作用类似于Android.widget.ScrollView,不同点在于NestedScrollView支持嵌套滑动.



0 0
原创粉丝点击