Android短视频源码实现卡片式数据展示的方法

发布来源:云豹科技
发布人:云豹科技
2021-07-30 10:11:28

展示数据有很多种形式,有单列表图文展示、双列表图文展示等等,今天介绍下云豹短视频源码中正在使用的卡片堆叠展示数据的方式,可以随手指滑动来实现切换卡片数据。

首先,在短视频源码中导入这个卡片的三方库依赖:

compile 'lin.jerrylin0322.reswipecard:reswipecard:1.0.1'

然后,就可以在页面中使用这个控件了,简单使用可以通过以下方式:

先在布局文件中声明Recyclerview

<android.support.v7.widget.RecyclerView
   android:id="@+id/rlv_user"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />


在Activity中,正常进行Recyclerview以及Adapter的配置:

private RecyclerView mRecyclerView;
mRecyclerView = findViewById(R.id.rlv_user);


不同的是,这里要使用该三方库的几个类:ReItemTouchHelper,MyCardSetting,CardTouchHelperCallback,CardLayoutManager,这里是关键,可以按照如下代码进行简单的使用:

 

//进行设置
 mCardSetting=new MyCardSetting();
//设置手机滑动卡片的响应方法
 mCardSetting.setSwipeListener(new OnSwipeCardListener<HomeUserCardBean>() {
            @Override
            public void onSwiping(RecyclerView.ViewHolder viewHolder, float dx, float dy, int direction) {
                switch (direction) {
正在下滑
                    case ReItemTouchHelper.DOWN:
//                        Log.e("aaa", "swiping direction=down");
                        break;
正在上滑
                    case ReItemTouchHelper.UP:
//                        Log.e("aaa", "swiping direction=up");
                        break;
正在左滑
                    case ReItemTouchHelper.LEFT:
//                        Log.e("aaa", "swiping direction=left");
                        break;
正在右滑
 
                    case ReItemTouchHelper.RIGHT:
//                        Log.e("aaa", "swiping direction=right");
                        break;
                }
            }


 

当卡片滑出范围,进行下一张卡片的展示,可以在这里做短视频源码中常用的其他响应操作

            @Override
            public void onSwipedOut(RecyclerView.ViewHolder viewHolder, HomeUserCardBean userCardBean, int direction) {
                switch (direction) {
卡片从界面下方滑出
//                    case ReItemTouchHelper.DOWN
//                        break;
卡片从界面上方滑出
 
//                    case ReItemTouchHelper.UP:
//                        break;
卡片从界面左方滑出
 
//                    case ReItemTouchHelper.LEFT:
//                        break;
卡片从界面右方滑出
 
//                    case ReItemTouchHelper.RIGHT:
//                        break;
                }
            }
 
            @Override
            public void onSwipedClear() {
结束
//                Toast.makeText(NormalActivity.this, "cards are consumed", Toast.LENGTH_SHORT).show();
            }
        });


将滑动响应事件与Recyclerview绑定

 CardTouchHelperCallback helperCallback = new CardTouchHelperCallback(mRecyclerView, mCardList,mCardSetting);
                    mReItemTouchHelper = new ReItemTouchHelper(helperCallback);
                    CardLayoutManager layoutManager = new CardLayoutManager(mReItemTouchHelper, mCardSetting);
                    mRecyclerView.setLayoutManager(layoutManager);


设置数据,数据接收的方式可以不同

                    if (mUserCardAdapter == null){
                        mUserCardAdapter = new UserCardAdapter(mContext,mCardList);
                    }else {
                        mUserCardAdapter.refreshData(mCardList);
                    }
                    mRecyclerView.setAdapter(mUserCardAdapter);


通过以上的代码,就可以迅速在短视频源码中实现类似于探探等应用首页的卡片式数据列表了,使用起来非常简单快捷,如果有其他定制性操作方式,可以再自己调整。以上就是本文《Android短视频源码实现卡片式数据展示的方法》,如有不明白的地方,欢迎与小云豹共同讨论。

声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任www.yunbaokj.com

声明:
以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任