zoukankan      html  css  js  c++  java
  • Android RecyclerView滚动类控件修改、去掉滑动边界的阴影效果

    前言

    滚动类控件,大家都用的很多,如 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"
    

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

  • 相关阅读:
    统计候选人
    九宫格输入法
    前端同学面试准备
    1、单元格内换行诀窍、合并单元格、身份证、日期乱码
    读写锁
    混合锁、互斥锁
    原子操作、自旋锁
    pipeline httpmodule
    vm +cenos7+gitlab 02
    vm +cenos7+gitlab 01
  • 原文地址:https://www.cnblogs.com/DMingO/p/12789935.html
Copyright © 2011-2022 走看看