展示数据有很多种形式,有单列表图文展示、双列表图文展示等等,今天介绍下云豹短视频源码中正在使用的卡片堆叠展示数据的方式,可以随手指滑动来实现切换卡片数据。
首先,在短视频源码中导入这个卡片的三方库依赖: 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:
break;
正在上滑
case ReItemTouchHelper.UP:
break;
正在左滑
case ReItemTouchHelper.LEFT:
break;
正在右滑
case ReItemTouchHelper.RIGHT:
break;
}
}
当卡片滑出范围,进行下一张卡片的展示,可以在这里做短视频源码中常用的其他响应操作
@Override
public void onSwipedOut(RecyclerView.ViewHolder viewHolder, HomeUserCardBean userCardBean, int direction) {
switch (direction) {
卡片从界面下方滑出
卡片从界面上方滑出
卡片从界面左方滑出
卡片从界面右方滑出
}
}
@Override
public void onSwipedClear() {
结束
}
});
将滑动响应事件与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短视频源码实现卡片式数据展示的方法》。
|