首页 > 其他分享 >Android RecyclerView 滑动后选中的条目居中显示

Android RecyclerView 滑动后选中的条目居中显示

时间:2024-03-30 11:58:42浏览次数:21  
标签:recyclerView 条目 item manager GalleryLayoutManager Android RecyclerView your

话不多说先看效果:

请添加图片描述
实录效果视频如下

<iframe allowfullscreen="true" data-mediaembed="csdn" frameborder="0" id="JvIWcrkM-1711694152348" src="https://live.csdn.net/v/embed/368618"></iframe>

滚动居中 RecyclerView

在原有的RecyclerView 基础上操作,其他步骤不变,只是替换一下 manager 步骤

  1. 导入依赖
        maven { url 'https://www.jitpack.io' }
    //无限滚动
    implementation 'com.github.ZhaoChanghu:GalleryLayoutManager:1.1.0'
  1. 使用
        //设置为横向,反向的反之
        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<View> 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);
    }
}

标签:recyclerView,条目,item,manager,GalleryLayoutManager,Android,RecyclerView,your
From: https://blog.csdn.net/As_thin/article/details/136261531

相关文章

  • FFmpeg开发笔记(九)Linux交叉编译Android的x265库
    ​《FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2 交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,前文又介绍了如何在Linux环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在Linux环境交叉编译Android所需x265的so库。1、安......
  • 6.android 中使用lombok
    没啥好说的上图!!!三个更改的地方lombok简化代码参考https://www.cnblogs.com/c2g5201314/p/14646120.html......
  • 5.Android(RecyclerView控件总结)
    先说很重要很重要的问题就是在使用RecyclerView控件的时候根据课本我们需要导入recyclerview-v7库但是会出现一堆问题因为使用的是androidstudio是最新版需要手动更改很多东西而最新整合的Androidx解决了这个问题参考https://blog.csdn.net/weixin_43977534/article/de......
  • 小红书Android实习面经
    一面(2023/10/1250min)Handler机制是什么?在没有message的时候为什么不会导致应用程序ANR?介绍一下四大组件?Activity启动模式?进程和线程的区别?进程是独立的执行单元,是系统资源分配的基本单元;线程是进程内执行单元,是任务调度的基本单元进程切换开销大,线程开销相对小你知道Android......
  • Android数据库升级,阿里程序员的Android之路
    publicsynchronizedstaticDBHelpergetInstance(Contextcontext){if(instance==null){instance=newDBHelper(context);}returninstance;}@OverridepublicvoidonCreate(SQLiteDatabasedb){db.execSQL(SQL.CREATE_TABLE_FAVORITE);//若不是第一个......
  • Android 标题栏Toolbar,安卓高级开发面试题
    super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}privatevoidinit(){toolbar=(Toolbar)findViewById(R.id.toolbar);//使用Toolbar替换ActionBarsetSupportActionBar(toolbar);}ToolBar的Action操作ToolBar的一大亮......
  • Android 手势相关(二)
    Android手势相关(二)本篇文章继续记录下android手势相关的内容.1:GestureOverlayView简介GestureOverlayView是Android中的一个视图组件,用于捕捉和处理手势操作.GestureOverlayView的主要用途:手势识别:通过GestureOverlayView,保存一些手势,并堆用户手势操作进行识别匹......
  • Android.bp语法记录
    参考资料:https://www.cnblogs.com/linhaostudy/p/12361659.htmlhttps://blog.csdn.net/hxp1994/article/details/113853459https://blog.csdn.net/tkwxty/article/details/104395820 Android.bpAndroid.bp文件首先是Android系统的一种编译配置文件,是用来代替原来的Android.......
  • android小球(二)——用户数据缓存详解SharedPreferences
    SharedPreferences概述SharedPreferences是Android平台上一个轻量级的存储辅助类,用来保存应用的一些常用配置,它提供了String,set,int,long,float,boolean六种数据类型。使用SharedPreferences进行存储的数据是存放在一个XML文件中的,同时它的存储方式是是以key-value的形式,key对应......
  • android AVC错误修改权限方法
    adblogcat日志报错:init:avc:denied{set}forproperty=camera.gc02m1scontext=u:r:mm-qcamerad:s0tcontext=u:object_r:camera_prop:s0tclass=property_serviceSELinux的权限不足标志性log:avc:denied{操作权限}forpid=7201comm=“进程名”scontext=u......