行业知识
Android RecyclerView 滑动后选中的条目居中显示
2026-11-10 12:20:09
来源:互联网转载
话不多说先看效果:
实录效果视频如下
滚动居中 RecyclerView
在原有的RecyclerView 基础上操作,其他步骤不变,只是替换一下 manager 步骤
- 导入依赖
maven { url 'https://www.jitpack.io' } //无限滚动 implementation 'com.github.ZhaoChanghu:GalleryLayoutManager:1.1.0'
- 使用
//设置为横向,反向的反之 GalleryLayoutManager manager = new GalleryLayoutManager(RecyclerView.HORIZONTAL); //your_recyclerView 你的RecyclerView 控件,进行绑定 manager.attach(your_recyclerView); //设置滑动缩放效果 Transformer 你可以自定义或者使用我下面贴出的 manager.setItemTransformer(new Transformer()); //设置适配器,和以前的写法一样 你的适配器 your_Adapter your_recyclerView.setAdapter(your_Adapter); //滚动回调 manager.setOnItemSelectedListener(new GalleryLayoutManager.OnItemSelectedListener() { @Override public void onItemSelected(RecyclerView recyclerView,ArrayList list, View item, int position) { //参数 list-你的recyclerView 所有的条目View //参数 item-当前选中的条目view //参数 position-当前选择的下标 //以下逻辑是上面图片和视频的处理方式 //1.首先遍历所有的条目view ,并全部设置为未选中背景 for (View v: list){ TextView mTxt = v.findViewById(R.id.tv_txt); mTxt.setBackground(ContextCompat.getDrawable(getApplicationContext(),R.drawable.bg_ffffff_t1)); } //2.通过当前选中的条目去查找里面的控件 TextView mTxt = item.findViewById(R.id.tv_txt); //3.给查找到的控件设置不同的背景,或者其他操作 mTxt.setBackground(ContextCompat.getDrawable(getApplicationContext(),R.mipmap.icon_select)); } }); Transformer
//滑动过程中的缩放public class Transformer implements GalleryLayoutManager.ItemTransformer { @Override public void transformItem(GalleryLayoutManager layoutManager, View item, float fraction) { //以圆心进行缩放 item.setPivotX(item.getWidth() / 2.0f); item.setPivotY(item.getHeight() / 2.0f); float scale = 1 - 0.3f * Math.abs(fraction); item.setScaleX(scale); item.setScaleY(scale); }}
上一篇:ps怎么切icon?