前言

滚动类控件,大家都用的很多,如 RecyclerView、NestedSrollView....

下面以recyclerView为例讲解,其他滚动控件也同理。

RecyclerView 滚动列表,谷歌在设计这类控件时候,在滑动到边界时,默认给我们加上了阴影效果,谷歌设计的本意呢应该是给提示用户列表滑动已经到边缘了,如图:

不过呢,自然也是有办法修改和关掉这个阴影效果的,方法请看下文~

修改阴影效果的颜色

阴影效果的颜色,其实是由你的项目中styles.xml中的AppTheme的theme定义的colorPrimary这个id的颜色控制的,当我们不指定阴影效果的颜色时,RecyclerView会自动获取R.color.colorPrimary的颜色。也就是说只要在colors.xml中修改colorPrimary对应的颜色值就可以了。要注意的不能修改这个id命名,不然可能会影响其他控件的表现

    <!--    styles.xml   -->    

    <style name = "AppTheme" parent = "Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name = "colorPrimary">@color/colorPrimary</item>
<item name = "colorPrimsaryDark">@color/colorPrimaryDark</item>
<item name = "colorAccent">@color/colorAccent</item>
</style>
------------------------------------------------------------------------ <!-- colors.xml --> <color name = "colorPrimary">#FFA958</color>

去掉阴影效果

但是有时候,我们想去掉这个阴影。方法也是很简单的,只需要调整控件的一个属性:overScrollModeneveroverScrollMode 顾名思义就是滑动即将超出边界时的模式,可以调整的属性有三种:

  • never: 完全去掉滑动边界的阴影效果
  • always: 总是出现滑动边界的阴影效果
  • ifContentScrolls:
    • 如果recycleview里面的内容可以滑动,那么滑到边界后继续滑动会出现滑动边界的阴影效果
    • 如果recycleview里面的内容不可以滑动,那么滑到边界后继续滑动不会出现滑动边界的阴影效果

只要在xml或者在View层代码中设置了就可以生效。不过要注意,View层代码一般来说优先级会比xml定义属性优先级要高。

设置完全去掉阴影效果的示例代码如下:另外两个效果也是同理~

//xml代码中设置
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:overScrollMode="never"
/>
//在java/kotlin代码里面修改
recyclerview.setOverScrollMode(RecyclerView.OVER_SCROLL_NEVER);

设置后,便能消除这个RecyclerView滑动边界的阴影效果了。

去掉滚动条

这里顺带一提,滚动控件如何去掉它的滚动条,只需要调整一个属性

android:scrollbars="none"

希望能帮到有需要的同学~

Android RecyclerView滚动类控件修改、去掉滑动边界的阴影效果的更多相关文章

  1. 【Android】自己定义控件实现可滑动的开关(switch)

    ~转载请注明来源:http://blog.csdn.net/u013015161/article/details/46704745 介绍 昨天晚上写了一个Android的滑动开关, 即SlideSwi ...

  2. recyclerView 列表类控件卡顿优化

    1.使用ConstraintLayout减少布局层级. 2.可以的话,设置RecyclerView布局等高,然后设置recyclerView.setHasFixedSize(true)这样可以避免每次 ...

  3. android自己定义刷新类控件

    android尽管定义了种类很丰富的控件.可是有的时候这些自己定义的控件还是不能满足我的要求,为了可以适配很多其它的需求,我们须要在原有的基础上进行自己定义控件. 今天我向大家介绍的就是android ...

  4. Android常用酷炫控件(开源项目)github地址汇总

    转载一个很牛逼的控件收集帖... 第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.Gri ...

  5. Android 常用炫酷控件(开源项目)git地址汇总

    第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.P ...

  6. Android实现监听控件点击事件

    Android实现监听控件点击事件 引言 这篇文章主要想写一下Android实现监听点击事件的几种方法,Activity和Fragment实现起来有些方法上会有些不同,这里也略做介绍. 最近一直在忙一 ...

  7. [Android]下拉刷新控件RefreshableView的实现

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4172483.html 需求:自定义一个ViewGroup,实现 ...

  8. Android自定义控件之日历控件

      标签: android 控件 日历 应用 需求 2015年09月26日 22:21:54 25062人阅读 评论(109) 收藏 举报 分类: Android自定义控件系列(7) 版权声明:转载注 ...

  9. Python+Appium自动化测试(10)-TouchAction类与MultiAction类(控件元素的滑动、拖动,九宫格解锁,手势操作等)

    滑动屏幕方法swipe一般用于对页面进行上下左右滑动操作,但自动化过程中还会遇到其他情况,如对控件元素进行滑动.拖拽操作,九宫格解锁,手势操作,地图的放大与缩小等.这些需要针对控件元素的滑动操作,或者 ...

随机推荐

  1. "段落"组件:<p> —— 快应用组件库H-UI

     <import name="p" src="../Common/ui/h-ui/text/c_p"></import> <te ...

  2. Pytorch自定义创建BP神经网络

    class BPNet(nn.Module): def __init__(self, in_dim, n_hidden_1, n_hidden_2,\ n_hidden_3, n_hidden_4, ...

  3. 常用Linux命令的基本使用

    01.常用Linux命令的基本使用 序号 命令 对应英文 作用 01 ls list 查看当前文件夹下的内容 02 pwd print work directory 查看当前所在文件夹 03 cd [ ...

  4. 10个步骤教你如何安装Anaconda安装,Python数据分析入门必看

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:小白 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行 ...

  5. Xor Path 牛客,HPU--C--LCA

    题解: 题目要求求出u和v两点在最短路径上的异或和.怎么确定最短路径呢?,就是U到LCA(u,v)的路径加上V到LCA(u,v).根据异或的性质,如k^a^a=k,即异或一个值两边等于原数值. 所以维 ...

  6. ESI web学习记录

    Ezbypass 解出 放在php新特性的文章最后了,利用json反序列化脚本绕过disable_functions来get flag Ezupload 没解出 登陆页面查看源代码发现,备份文件泄露. ...

  7. 【5min+】为你的.NET应用进行一次全方位体检

    系列介绍 [五分钟的dotnet]是一个利用您的碎片化时间来学习和丰富.net知识的博文系列.它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net ...

  8. C++写日志方法调试

    调试方法有很多 介绍一种奇怪的?调试方法哈哈 通过WriteLog记录返回值查看返回结果. string str_log;stringstream ssteam;ssteam << &qu ...

  9. Netty入门与实战教程总结分享

    前言:都说Netty是Java程序员必须要掌握的一项技能,带着不止要知其然还要知其所以然的目的,在慕课上找了一个学习Netty源码的教程,看了几章后着实有点懵逼.虽然用过Netty,并且在自己的个人网 ...

  10. Java 网络编程 -- 基于TCP 实现聊天室 群聊 私聊

    分析: 聊天室需要多个客户端和一个服务端. 服务端负责转发消息. 客户端可以发送消息.接收消息. 消息分类: 群聊消息:发送除自己外所有人 私聊消息:只发送@的人 系统消息:根据情况分只发送个人和其他 ...