前言

滚动类控件,大家都用的很多,如 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. C语言实现链表(链式存储结构)

    链表(链式存储结构)及创建 链表,别名链式存储结构或单链表,用于存储逻辑关系为 "一对一" 的数据.与顺序表不同,链表不限制数据的物理存储状态,换句话说,使用链表存储的数据元素,其 ...

  2. 采用TuesPechkin生成Pdf

    1.需求 前段时间有个需求,要求把网页生成pdf,找了各种插件,才决定使用这个TuesPechkin,这个是后台采用C#代码进行生成 2.做法 我要做的是一个比较简单的页面,采用MVC绑定,数据动态加 ...

  3. VMware 15.5虚拟机安装群晖NAS

     一.群晖nas简介 NAS(Network Attached Storage:网络附属存储),按字面意思理解其实就是网络存储器,可以理解为存储资料的网盘,云盘.NAS本身支持多种协议(如NFS.CI ...

  4. Keepalived实现Nginx负载均衡高可用

    第一章:keepalived介绍 VRRP协议 目的就是为了解决静态路由单点故障问题的 第二章: keepalived工作原理 2.1 作为系统网络服务的高可用功能(failover) keepali ...

  5. 曹工说Redis源码(7)-- redis server 的周期执行任务,到底要做些啥

    文章导航 Redis源码系列的初衷,是帮助我们更好地理解Redis,更懂Redis,而怎么才能懂,光看是不够的,建议跟着下面的这一篇,把环境搭建起来,后续可以自己阅读源码,或者跟着我这边一起阅读.由于 ...

  6. ADO.NET(二)

     对Command的拓展延伸 执行SQL语句. Command 对象需要取得将要执行的SQL语句,通过调用该类的多种方法,向数据库提交SQL语句. ExecuteNonQuery(),ExecuteR ...

  7. python 基础篇 模块化

    在做项目的时候,虽然你不可能把全世界的代码都放到一个文件夹下,但是类似模块化的思想还是要有的--那就是以项目的根目录作为最基本的目录,所有的模块调用,都要通过根目录一层层向下索引的方式来 import ...

  8. python 给字典按值排序,同样适合于其他

    sorted_items = sorted(dico.items(),key=lambda x:(-x[1],x[0]))

  9. 二分查找(通过相对位置判断区间位置)--17--二分--LeetCode33搜索旋转排序数组

    搜索旋转排序数组 假设按照升序排序的数组在预先未知的某个点上进行了旋转.( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中 ...

  10. <string>头文件常用成员函数

    之前说过 string和vector一样,也是一种顺序容器,并且它也自带成员函数,用法和vector的成员函数差不多,不过它只能用来存放字符,也就是字符串. 在c++中,<string>基 ...