一、简介
首先来看google官方对他的介绍,翻译过来就是可以滚动的用户布局容器,如果手机显示不下子布局,那么可以使用scrollView,当然谷歌也说NestedscrollView已经提供了更好的用户体验,这个我们以后再详细总结下。
谷歌官方已经提示,不要在scrollView中添加RecyclerView或者是ListView布局,这样会引起不好的体验因为会有滑动冲突的问题出现。另外,ScrollView的直接子View只能有一个。也就是说如果你的视图结构比较复杂,你需要一个标准的容器,如LinearLayout、RelativeLayout等。ScrollView只支持竖直滑动,水平滑动使HorizontalScrollView。
二、构造函数
2.1、public ScrollView (Context context)
创建一个默认属性的ScrollView实例。
2.2、public ScrollView (Context context, AttributeSet attrs)
创建一个带有attrs属性的ScrollView 实例。
2.3、public ScrollView (Context context, AttributeSet attrs, int defStyle)
创建一个带有attrs属性,并且指定其默认样式的ScrollView实例。
三、公共方法
3.1、public void addView (View child)
添加子视图。如果事先没有给子视图设置layout参数,会采用当前ViewGroup的默认参数来设置子视图。
参数:
child:所添加的子视图
3.2、public void addView (View child, int index)
添加子视图。如果事先没有给子视图设置layout参数,会采用当前ViewGroup的默认参数来设置子视图。
参数:
child:所添加的子视图
index:添加子视图的位置
3.3、public void addView (View child, int index, ViewGroup.LayoutParams params)
根据指定的layout参数添加子视图
参数:
child:所添加的子视图
index:添加子视图的位置
params:为子视图设置的layout参数
3.4、public void addView (View child, ViewGroup.LayoutParams params)
根据指定的layout参数添加子视图。
参数:
child:所添加的子视图
params:为子视图设置的layout参数
3.5、public boolean arrowScroll (int direction)
响应点击上下箭头时对滚动条滚动的处理。
参数:
direction:按下的箭头所对应的方向
返回值:如果我们处理(消耗)了此事件返回true,否则返回false。
3.6、public void computeScroll ()
被父视图调用,用于必要时候对其子视图的值(mScrollX和mScrollY)进行更新。典型的情况如:父视图中某个子视图使用一个Scroller对象来实现滚动操作,会使得此方法被调用。
3.7、public boolean dispatchKeyEvent (KeyEvent event)
发送一个key事件给当前焦点路径的下一个视图。此焦点路径从视图树的顶层执行直到当前焦点视图。如果此视图为焦点视图,将为自己发送。否则,会为当前焦点路径的下一个节点发送。此方法也会激起一个key监听器。
参数:
event:发送的key事件
返回值:事件被处理返回true,否则返回false。
3.8、public void draw (Canvas canvas)
手动绘制视图(及其子视图)到指定的画布(Canvas)。这个视图必须在调用这个函数之前做好了整体布局。当实现一个视图时,不需要继承这个方法;相反,你应该实现onDraw(Canvas)方法。
参数:
canvas:绘制视图的画布
3.9、public boolean executeKeyEvent (KeyEvent event)
当接收到key事件时,用户可以调用此函数来使滚动视图执行滚动,类似于处理由视图体系发送的事件。
参数:
event:需要执行key的事件
返回值:事件被处理返回true,否则返回false。
3.10、public void fling (int velocityY)
滚动视图的滑动(fling)手势。(译者注: 如何监听android的屏幕滑动停止事件)
参数:
velocityY:Y方向的初始速率。正值表示手指/光标向屏幕下方滑动,而内容将向上滚动。
3.11、public boolean fullScroll (int direction)
对响