# RecyclerViewEffectDemo **Repository Path**: jackning_admin/recycler-view-effect-demo ## Basic Information - **Project Name**: RecyclerViewEffectDemo - **Description**: No description available - **Primary Language**: Kotlin - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-10 - **Last Updated**: 2024-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RecyclerViewEffectDemo #### 介绍 # Android实现RecyclerView边缘渐变效果 # 1.前言: 是指在RecyclerView中实现淡入淡出效果的边缘效果。通过这种效果,可以使RecyclerView的边缘在滚动时逐渐淡出或淡入,以提升用户体验。 # 2.Recyclerview属性: 2.1、requiresFadingEdge:属性用来设置拉[滚动条](https://so.csdn.net/so/search?q=滚动条&spm=1001.2101.3001.7020)时 ,边框渐变的方向。 - none(边框颜色不变) - horizontal(水平方向颜色变淡) - vertical(垂直方向颜色变淡) 2.2、fadingEdgeLength:用来设置边框渐变的长度 ```kotlin ``` # 3.简单适配器: ```kotlin package com.cloud.recyclervieweffectdemo.adapter import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.cloud.recyclervieweffectdemo.R import com.cloud.recyclervieweffectdemo.bean.EffectBean /** * @author: njb * @date: 2024/12/10 23:14 * @desc: 描述 */ class EffectAdapter(private val dataList: MutableList) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): EffectViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.item_effect,parent,false) return EffectViewHolder(view) } override fun getItemCount(): Int { return dataList.size } override fun onBindViewHolder(holder: EffectViewHolder, position: Int) { val data = dataList[position] holder.textView.text = data.name } class EffectViewHolder(itemView: View) :RecyclerView.ViewHolder(itemView){ val textView:TextView = itemView.findViewById(R.id.tv_name) val ivAvatar:ImageView = itemView.findViewById(R.id.iv_avatar) } } ``` # 4.实体类: ```kotlin package com.cloud.recyclervieweffectdemo.bean /** * @author: njb * @date: 2024/12/10 23:16 * @desc: 描述 */ data class EffectBean( var name:String = "", var avatar:String = "" ) ``` # 5.主界面布局: ```kotlin ``` # 6.item布局: ```kotlin ``` # 7.测试代码: 竖向渐变 ```kotlin package com.cloud.recyclervieweffectdemo import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.cloud.recyclervieweffectdemo.adapter.EffectAdapter import com.cloud.recyclervieweffectdemo.bean.EffectBean class MainActivity : AppCompatActivity() { private var adapter:EffectAdapter ?= null private var dataList:MutableList ?= null private val rvEffect:RecyclerView by lazy { findViewById(R.id.rv_effect) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) initData() initAdapter() } private fun initData() { val effectBean = EffectBean() dataList = ArrayList() for(i in 1..15){ effectBean.name = "小麦" effectBean.avatar = "222" dataList?.add(effectBean) } } private fun initAdapter() { adapter = dataList?.let { EffectAdapter(it) } rvEffect.layoutManager = LinearLayoutManager(this) rvEffect.adapter = adapter } } ``` # 8.横向渐变: ```kotlin package com.cloud.recyclervieweffectdemo import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.cloud.recyclervieweffectdemo.adapter.EffectAdapter import com.cloud.recyclervieweffectdemo.bean.EffectBean class MainActivity : AppCompatActivity() { private var adapter:EffectAdapter ?= null private var dataList:MutableList ?= null private val rvEffect:RecyclerView by lazy { findViewById(R.id.rv_effect) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) initData() initAdapter() } private fun initData() { val effectBean = EffectBean() dataList = ArrayList() for(i in 1..15){ effectBean.name = "小麦" effectBean.avatar = "222" dataList?.add(effectBean) } } private fun initAdapter() { adapter = dataList?.let { EffectAdapter(it) } rvEffect.layoutManager = LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false) rvEffect.adapter = adapter } } ``` ```k ``` # 9.实现效果: ![image-20241215225205251](C:\Users\Cloud\AppData\Roaming\Typora\typora-user-images\image-20241215225205251.png) ![image-20241215225537405](C:\Users\Cloud\AppData\Roaming\Typora\typora-user-images\image-20241215225537405.png) # 10.demo地址: https://gitee.com/jackning_admin/recycler-view-effect-demo #### 软件架构 软件架构说明 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)