如何了解和掌握一个网站的权重,连锁销售网站制作,可以做商品砍价的网站,有什么做门窗展厅的设计网站Android实现RecyclerView边缘渐变效果
1.前言#xff1a;
是指在RecyclerView中实现淡入淡出效果的边缘效果。通过这种效果#xff0c;可以使RecyclerView的边缘在滚动时逐渐淡出或淡入#xff0c;以提升用户体验。
2.Recyclerview属性#xff1a;
2.1、requiresFading…Android实现RecyclerView边缘渐变效果
1.前言
是指在RecyclerView中实现淡入淡出效果的边缘效果。通过这种效果可以使RecyclerView的边缘在滚动时逐渐淡出或淡入以提升用户体验。
2.Recyclerview属性
2.1、requiresFadingEdge属性用来设置拉滚动条时 边框渐变的方向。
none边框颜色不变horizontal水平方向颜色变淡vertical垂直方向颜色变淡
2.2、fadingEdgeLength用来设置边框渐变的长度 androidx.recyclerview.widget.RecyclerViewandroid:idid/rv_effectandroid:layout_width0dpandroid:layout_height0dpapp:layout_constraintBottom_toBottomOfparentapp:layout_constraintEnd_toEndOfparentapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparentandroid:fadingEdgeLength40dpandroid:fadingEdgeverticalandroid:requiresFadingEdgeverticaltools:listitemlayout/item_effectandroid:padding15dp/3.简单适配器
package com.cloud.recyclervieweffectdemo.adapterimport 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: MutableListEffectBean) : RecyclerView.AdapterEffectAdapter.EffectViewHolder() {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.实体类
package com.cloud.recyclervieweffectdemo.bean/*** author: njb* date: 2024/12/10 23:16* desc: 描述*/
data class EffectBean(var name:String ,var avatar:String
)5.主界面布局
?xml version1.0 encodingutf-8?
androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:idid/mainandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityandroidx.recyclerview.widget.RecyclerViewandroid:idid/rv_effectandroid:layout_width0dpandroid:layout_height0dpapp:layout_constraintBottom_toBottomOfparentapp:layout_constraintEnd_toEndOfparentapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparentandroid:fadingEdgeLength40dpandroid:fadingEdgeverticalandroid:requiresFadingEdgeverticaltools:listitemlayout/item_effectandroid:padding15dp//androidx.constraintlayout.widget.ConstraintLayout6.item布局
?xml version1.0 encodingutf-8?
androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentImageViewandroid:idid/iv_avatarandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:scaleTypefitCenterandroid:srcmipmap/ic_girlapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparent /androidx.appcompat.widget.AppCompatTextViewandroid:idid/tv_nameandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text天地android:textColorcolor/blackandroid:textSize24spapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toBottomOfid/iv_avatar /
/androidx.constraintlayout.widget.ConstraintLayout7.测试代码
竖向渐变
package com.cloud.recyclervieweffectdemoimport 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.EffectBeanclass MainActivity : AppCompatActivity() {private var adapter:EffectAdapter ? nullprivate var dataList:MutableListEffectBean ? nullprivate 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 222dataList?.add(effectBean)}}private fun initAdapter() {adapter dataList?.let { EffectAdapter(it) }rvEffect.layoutManager LinearLayoutManager(this)rvEffect.adapter adapter}
}8.横向渐变
package com.cloud.recyclervieweffectdemoimport 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.EffectBeanclass MainActivity : AppCompatActivity() {private var adapter:EffectAdapter ? nullprivate var dataList:MutableListEffectBean ? nullprivate 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 222dataList?.add(effectBean)}}private fun initAdapter() {adapter dataList?.let { EffectAdapter(it) }rvEffect.layoutManager LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false)rvEffect.adapter adapter}
}?xml version1.0 encodingutf-8?
androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:idid/mainandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityandroidx.recyclerview.widget.RecyclerViewandroid:idid/rv_effectandroid:layout_width0dpandroid:layout_height0dpapp:layout_constraintBottom_toBottomOfparentapp:layout_constraintEnd_toEndOfparentapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparentandroid:fadingEdgeLength40dpandroid:fadingEdgehorizontalandroid:requiresFadingEdgehorizontaltools:listitemlayout/item_effectandroid:padding15dp//androidx.constraintlayout.widget.ConstraintLayout9.实现效果 10.demo地址
https://gitee.com/jackning_admin/recycler-view-effect-demo