Android修行手册 - ScrollView属性全解析

举报
芝麻粒儿 发表于 2022/09/27 15:44:10 2022/09/27
【摘要】 👉关于作者众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)欢迎关注公众号【空名先生】获取更多资源和交流! 👉前提这是小空坚持写的Android新手向系列,欢迎...

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!

专注于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)

📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。