Android 基础知识4-3.10 ScrollView(滚动条)详解

本文详细介绍了Android中的ScrollView,包括它的用途、构造函数、公共方法和注意事项。ScrollView是一个可滚动的布局容器,当内容无法在屏幕内完全显示时使用。文章列举了多个构造函数和常用方法,如addView()、fullScroll()和fling(),并提醒避免在ScrollView中嵌套RecyclerView或ListView。此外,还提到了设置滚动速度、隐藏滑块以及滚动到底部的方法。
摘要由CSDN通过智能技术生成

一、简介

在这里插入图片描述      首先来看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)

        对响

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyxhzdm

你的鼓励是我创作的最大动力!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值