Android修行手册 - ScrollView属性全解析
👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
欢迎关注公众号【空名先生】获取更多资源和交流!
👉前提
这是小空坚持写的Android新手向系列,欢迎品尝。
新手(√√√)
大佬(√)
👉实践过程
Hello,大家好啊,我是小空,今天带大家学习垂直滚动视图-ScrollView。除此之外后续我们还会学习HorizontalScrollView(水平滚动)和NestedScrollView。
ScrollView中内部仅可放置一个直接子View,其他的控件都是放置到子View里面,所以她一般嵌套的是LinearLayout,像RelativeView也是可以的,只不过前面我们LinearLayout是线性布局直接按顺序排列,所以很方便快捷。
有的朋友看到这就想起来,不是还有RecyclerView和ListView吗,他们有什么不同?没错,他们都是可以滚动的,而且RecyclerView支持的滚动样式更多。最大的区别就是RecyclerView和ListView是复用性的,也就是你在手机上看到的View高度就是他们的高度,当你滑动的时候是将当前屏幕的某些item数据重新赋值(也就是需要的时候才渲染)。而ScrollView不同,她实际的高度是高于你看见的View的,上来直接全部渲染不管你看没看见。
而且要记得,千万不要嵌套RecyclerView或ListView,那简直就是拿着新手装备去打高级Boss——给自己找事。
😜属性
- android:background:基础属性设置背景色/背景图片。
- android:padding、android:paddingBottom、android:paddingLeft、android:paddingRight、android:paddingEnd、android:paddingStart、android:paddingTop:基础属性设置上下左右的内部边距,以像素为单位填充空白
- android:layout_margin、android:layout_marginEnd、android:layout_marginStart、android:layout_marginBottom、android:layout_marginLeft、android:layout_marginRight、android:layout_marginTop:基础属性设置上下左右的外面的边距,以像素为单位填充空白
- android:duplicateParentState:举个例子当按钮很小的时候,我们通常会给按钮的父view设置点击事件才方便用户点击到,如果你想要这个很小的按钮有状态变化,方法一则是父View的点击事件中更改状态,另一个则是给该按钮设置好selector后直接加上该属性则实现效果。
- android:fadingEdge:表示设置拉滚动条渐变消失时,有三个值none(边框颜色不变),horizontal(水平方向颜色变淡),vertical(垂直方向颜色变淡),和scrollbarAlwaysDraw的两个属性冲突
- android:fadingEdgeLength:表示设置滑动条边框渐变的长度。
- android:isScrollContainer:表示设置滚动容器是否可以自动调整大小,常用于当里面嵌套了EditText的时候,需要弹出输入法,这时候就需要更改view来适配键盘的显示,和android:windowSoftInputMode="adjustPan"属性类似。
- android:scrollX和android:scrollY:以像素为单位设置水平方向或垂直方向滚动的的偏移值,不常用,使用其他的。
- android:fillViewport:这是个很有意思的属性,表示是否拉伸填充视图,比如做适配的时候,如果内部子view高度高于scrollview,该属性无作用,可如果子view高度低于scrollview,当做了屏幕适配,在小屏幕上看着可以,但大屏幕就会感觉空一大片,举例scrollview的高度为500dp,子LinearLayout有两个图片view,这时候再两个ImageView之间增加个普通View且weight权重为1,如果没有fillViewport属性没有效果,如果设置fillViewport为true,你会发现LinearLayout填充满了scrollview,一个ImageView在顶部一个在底部,中间被权重1的view填充
- android:fadeScrollbars:表示设置滚动是否隐藏,默认为true,false的时候表示滚动条一直显示
- android:scrollbarDefaultDelayBeforeFade:表示设置滚动条N毫秒后开始淡化,注意强调的是开始淡化,滑动的时候会重新显示停止后继续等待淡化,如此反复。
- android:scrollbarFadeDuration:表示设置滚动条淡化持续时间,强调是开始淡化到消失的这段时间。
- android:scrollbarThumbHorizontal:表示设置水平滚动条的drawable(如颜色),只在HorizontalScrollView中有效。
- android:scrollbarThumbVertical:表示设置垂直滚动条的drawable(如颜色),只在ScrollView中有效。
- android:scrollbarTrackHorizontal:表示设置水平滚动条那个滚动边轨迹的背景色drawable(如颜色),只在HorizontalScrollView中有效。
- android:scrollbarTrackVertical:表示设置垂直滚动条那个滚动边轨迹的背景色drawable(如颜色),只在ScrollView中有效。
- android:scrollbars:设置滚动条显示。none(隐藏),horizontal(水平,只有HorizontalScrollView控件中有效),vertical(垂直,只有ScrollView控件中有效)。
- android:scrollbarSize:表示设置滚动条的宽度是多少。
- android:scrollbarStyle:表示设置滚动条的风格和位置。有四个设置值:insideOverlay则是在padding区域内和view重叠,滚动条在上、insideInset则是在padding区域内插入到控件的后方,即使你的view是match_parent属性,也会看到后方有一个小空白、outsideOverlay、outsideInset这两个和前面的一致,只不过是padding区域外,推荐常用outsideOverlay。
- android:soundEffectsEnabled:表示设置点击或触摸时能不能发出声音,是布尔值true和false,注意声音取决于手机系统设置中的按键提示那的功能,无法单纯设置声音。
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:芝麻粒儿 的个人主页 - 专栏 - 掘金 (juejin.cn)
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。
- 点赞
- 收藏
- 关注作者
评论(0)