xrecyclerview实现两种多条目
来源:互联网 发布:java项目开发文档模板 编辑:程序博客网 时间:2024/06/05 07:54
xrecyclerview的依赖包
compile 'com.jcodecraeer:xrecyclerview:1.3.2'
主线程
public class MainActivity extends AppCompatActivity { private XRecyclerView xr; private List<HomeBean.SongListBean> list=new ArrayList<>(); //获取数据的开始 private int curr=1; private XRAdapter adapter; private String mpath="http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=2&size=10&offset=0"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化xr xr= (XRecyclerView) findViewById(R.id.xre_xrv); //加布局管理器 LinearLayoutManager layoutManager=new LinearLayoutManager(this); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); xr.setLayoutManager(layoutManager); //允许刷新加载 xr.setPullRefreshEnabled(true); xr.setLoadingMoreEnabled(true); xr.setLoadingListener(new XRecyclerView.LoadingListener() { //刷新 @Override public void onRefresh() { curr=1; list.clear(); getData(curr); xr.refreshComplete(); } //加载 @Override public void onLoadMore() { curr++; getData(curr); xr.loadMoreComplete(); } }); curr=1; getData(1); xr.setLayoutManager(new LinearLayoutManager(MainActivity.this)); } //初始化数据 private void getData(int curr){ OkHttp3Utils.getInstance().doGet(mpath, new GsonObjectCallback<HomeBean>() { @Override public void onUi(HomeBean homeBean) { for (int i = 0 ; i < homeBean.getSong_list().size() ; i++){ list.add(homeBean.getSong_list().get(i)); } //关联适配器,并将集合传入适配器 XRAdapter mxradapter=new XRAdapter(list,MainActivity.this); xr.setAdapter(mxradapter); } @Override public void onFailed(Call call, IOException e) { } }); }}
适配器
public class XRAdapter extends RecyclerView.Adapter { private List<HomeBean.SongListBean> list; private Context context; public XRAdapter(List<HomeBean.SongListBean> list, Context context) { this.list = list; this.context = context; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch (viewType){ case 0: bannerViewholder holder1 = new bannerViewholder(LayoutInflater.from( context).inflate(R.layout.item_banner, parent, false)); return holder1; case 1: MaxViewholder holder2 = new MaxViewholder(LayoutInflater.from( context).inflate(R.layout.item_max, parent, false)); return holder2; } return null; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { switch (getItemViewType(position)){ case 0: bannerViewholder bannerholder= (bannerViewholder) holder; ArrayList<String> mlist = new ArrayList<>(); for (int i=0;i<list.size();i++){ String img = list.get(i).getPic_big(); mlist.add(img); if (mlist.size() == 5){ break; } } bannerholder.banner.setImageLoader(new GlideImaGlideImageLoader()); bannerholder.banner.setImages(mlist); bannerholder.banner.start(); break; case 1: MaxViewholder maxholder= (MaxViewholder) holder; maxholder.tv_title.setText(list.get(position).getAlbum_title()); String img = list.get(position).getPic_small(); ImageLoader.getInstance().displayImage(img,((MaxViewholder) holder).imgshow); break; } } @Override public int getItemCount() { return list.size(); } class MaxViewholder extends RecyclerView.ViewHolder{ TextView tv_title; ImageView imgshow; public MaxViewholder(View itemView) { super(itemView); tv_title = itemView.findViewById(R.id.tv_title); imgshow = itemView.findViewById(R.id.imgshow); } } class bannerViewholder extends RecyclerView.ViewHolder{ private Banner banner; public bannerViewholder(View itemView) { super(itemView); banner=itemView.findViewById(R.id.mybanner); } } @Override public int getItemViewType(int position) { if(position==0){ return 0; }else{ return 1; } }}
主布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.baway.zhouzipeng.xrecyclerviewdemo1025.MainActivity"> <com.jcodecraeer.xrecyclerview.XRecyclerView android:layout_width="match_parent" android:id="@+id/xre_xrv" android:layout_height="match_parent"> </com.jcodecraeer.xrecyclerview.XRecyclerView></RelativeLayout>
效果布局自己布 简单的上边banner轮播图下边listview
阅读全文
0 0
- xrecyclerview实现两种多条目
- Android XRecyclerView(多条目加载实现)
- MVP实现xRecyclerview多条目加载
- XRecyclerView 多条目加载
- XRecyclerView多条目加载
- xrecyclerview多条目布局
- Android——XRecyclerView实现上拉下拉,多条目布局
- XRecyclerView的多条目请求数据,可以实现上拉加载下拉刷新
- mvp+retrofit+rxjava xrecyclerview实现多条目 下拉刷新 下拉加载 点击跳转
- xRecyclerView的刷新,加载更多,多条目
- RecyclerView 条目点击事件 XRecyclerView刷新加载
- XRecyclerView实现原理
- XRecyclerView+上拉加载下拉刷新+多条目加载
- XRecyclerView的多条目加载(banner+列表)
- MVP泛型+xRecyclerView+Retrofit+OkHttp+RxJava多条目,横向
- XRecyclerView
- XrecyclerView
- XRecyclerView
- 【Kettle从零开始】第八弹之Kettle变量参数传递介绍
- Jetty配置Jndi数据源及使用
- 上传工具类
- mysql导入导出sql文件
- 图片二次采样
- xrecyclerview实现两种多条目
- http请求方法
- 折半查找
- 圆形图片
- 考虑到适配的动态摇杆(本人资料备份)
- TCP/IP<2>
- 洛谷P2656 采蘑菇
- 社交网络图挖掘4--三角形计数问题
- viewpager无限轮播加小圆点