实现的思路是采用RecyclerView 的多布局,再配合PageSnapeHelper这个类实现类似ViewPager一样的效果,涉及到视频播放本次使用的是饺子播放器,也可以使用其他播放器,只要实现效果就可以
布局只有一个RecyclerView 就不贴代码了
在activity中初始化RecyclerView
layoutManager = new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
bannerRv.setLayoutManager(layoutManager);
if (multiAdapter == null) {
multiAdapter = new JiFenGoodsDetailTypesAdapter(mList);
}
snapHelper = new PagerSnapHelper();
snapHelper.attachToRecyclerView(bannerRv);
bannerRv.setAdapter(multiAdapter);
关于 Adapter使用的BaseRecyclerViewAdapterHelper开源封装库,如下
ublic class JiFenGoodsDetailTypesAdapter extends BaseMultiItemQuickAdapter<VideoMultyItem, BaseViewHolder>{
/**
* Same as QuickAdapter#QuickAdapter(Context,int) but with
* some initialization data.
*
* @param data A new list is created out of this one to avoid mutable list
*/
public JiFenGoodsDetailTypesAdapter(List<VideoMultyItem> data) {
super(data);
addItemType(1, R.layout.banner_video);
addItemType(2, R.layout.banner_image);
}
@Override
protected void convert(BaseViewHolder helper, VideoMultyItem item) {
helper.setText(R.id.item_number_tv,helper.getLayoutPosition()+1+"/"+getItemCount());
switch (item.getItemType()){
case 1:
//视频
JzvdStd jzvdStd = helper.getView(R.id.player);