# 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.实现效果:


# 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/)