练习使用XRecyclerView,可上拉下拉刷新。

 1 package com.lixu.testxrecyclerview;
 2 import android.support.v7.app.AppCompatActivity;
 3 import android.os.Bundle;
 4 import android.support.v7.widget.StaggeredGridLayoutManager;
 5 import android.view.LayoutInflater;
 6 import android.view.View;
 7 import android.view.ViewGroup;
 8 import android.widget.Toast;
 9 import com.jcodecraeer.xrecyclerview.XRecyclerView;
10
11 public class MainActivity extends AppCompatActivity {
12     private XRecyclerView mXRecyclerView;
13
14     @Override
15     protected void onCreate(Bundle savedInstanceState) {
16         super.onCreate(savedInstanceState);
17         setContentView(R.layout.activity_main);
18
19         int[] imgs = {R.drawable.img1, R.drawable.img2, R.drawable.img3, R.drawable.img4, R.drawable.img5, R.drawable.img6, R.drawable.img7, R.drawable.img8, R.drawable.img9, R.drawable.img10,
20                 R.drawable.img11, R.drawable.img12, R.drawable.img13, R.drawable.img14, R.drawable.img15, R.drawable.img16, R.drawable.img17, R.drawable.img18, R.drawable.img19, R.drawable.img20,
21                 R.drawable.meinv1, R.drawable.meinv2, R.drawable.meinv3, R.drawable.meinv4, R.drawable.meinv5, R.drawable.meinv6, R.drawable.meinv7, R.drawable.meinv8, R.drawable.meinv9, R.drawable.meinv10,
22                 R.drawable.meinv11, R.drawable.meinv12, R.drawable.meinv13, R.drawable.meinv14, R.drawable.meinv15, R.drawable.meinv16, R.drawable.meinv17, R.drawable.meinv18, R.drawable.meinv19, R.drawable.meinv20,
23         };
24
25         mXRecyclerView = (XRecyclerView) findViewById(R.id.xrecyclerview);
26         //新建瀑布流的布局
27         StaggeredGridLayoutManager sgm = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
28         //设置滑动方向
29         sgm.setOrientation(StaggeredGridLayoutManager.HORIZONTAL);
30         //设置布局
31         mXRecyclerView.setLayoutManager(sgm);
32         mXRecyclerView.setPullRefreshEnabled(true);
33         MyAdapter myAdapter= new MyAdapter(imgs,this);
34         mXRecyclerView.setAdapter(myAdapter);
35         //设置点击事件
36         myAdapter.setOnItemClickLitener(new MyAdapter.OnItemClickLitener() {
37             @Override
38             public void onitemclick(View view, int pos) {
39                 Toast.makeText(getApplicationContext(),"第"+pos+"被点击",Toast.LENGTH_SHORT).show();
40             }
41
42             @Override
43             public void onitemlongclick(View view, int pos) {
44                 Toast.makeText(getApplicationContext(),"第"+pos+"被长按",Toast.LENGTH_SHORT).show();
45             }
46         });
47         //添加头部
48         View header = LayoutInflater.from(this).inflate(R.layout.header, (ViewGroup) findViewById(android.R.id.content), false);
49         mXRecyclerView.addHeaderView(header);
50         //设置 上拉下拉刷新监听器
51         mXRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
52
53             @Override
54             public void onRefresh() {
55                 mXRecyclerView.refreshComplete();
56             }
57
58             @Override
59             public void onLoadMore() {
60                 mXRecyclerView.loadMoreComplete();
61             }
62         });
63
64     }
65
66
67
68 }
 1 package com.lixu.testxrecyclerview;
 2
 3 import android.content.Context;
 4 import android.graphics.BitmapFactory;
 5 import android.support.v7.widget.RecyclerView;
 6 import android.view.View;
 7 import android.view.ViewGroup;
 8 import android.widget.ImageView;
 9
10 import com.jcodecraeer.xrecyclerview.XRecyclerView;
11
12 /**
13  * Created by lixu on 2016/3/19.
14  */
15 class MyAdapter extends XRecyclerView.Adapter<MyAdapter.Myholder> {
16     private int[] data;
17     private Context context;
18     private BitmapFactory.Options otp;
19
20
21     public MyAdapter(int[] imgs, Context c) {
22         context = c;
23         data = imgs;
24         otp = new BitmapFactory.Options();
25     }
26
27     @Override
28     public Myholder onCreateViewHolder(ViewGroup parent, int viewType) {
29
30         View view = View.inflate(context, R.layout.item_list, null);
31
32         return new Myholder(view);
33     }
34
35     //设置回调接口
36     interface OnItemClickLitener {
37
38         void onitemclick(View view, int pos);
39
40         void onitemlongclick(View view, int pos);
41
42     }
43
44     private OnItemClickLitener onItemClickLitener;
45
46
47     public void setOnItemClickLitener(OnItemClickLitener onItemClickLitener) {
48         this.onItemClickLitener = onItemClickLitener;
49     }
50
51
52     @Override
53     public void onBindViewHolder(final Myholder holder, int position) {
54         //将本地图片改成bitmap图片
55         holder.iv.setImageBitmap(BitmapFactory.decodeStream(context.getResources().openRawResource(data[position]), null, otp));
56         // holder.iv.setImageResource(data[position]);
57         //设置点击事件
58         holder.iv.setOnClickListener(new View.OnClickListener() {
59             @Override
60             public void onClick(View v) {
61                 int pos = holder.getLayoutPosition();
62                 onItemClickLitener.onitemclick(holder.iv, pos);
63             }
64         });
65         //设置长按点击事件
66         holder.iv.setOnLongClickListener(new View.OnLongClickListener() {
67             @Override
68             public boolean onLongClick(View v) {
69                 int pos = holder.getLayoutPosition();
70                 onItemClickLitener.onitemlongclick(holder.iv, pos);
71                 return false;
72             }
73         });
74
75     }
76
77
78     @Override
79     public int getItemCount() {
80
81         return data.length;
82     }
83
84     public class Myholder extends RecyclerView.ViewHolder {
85         private ImageView iv;
86
87         public Myholder(View itemView) {
88             super(itemView);
89             iv = (ImageView) itemView.findViewById(R.id.iv);
90         }
91     }
92 }

xml:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     tools:context="com.lixu.testxrecyclerview.MainActivity">
 7
 8    <com.jcodecraeer.xrecyclerview.XRecyclerView
 9        android:id="@+id/xrecyclerview"
10        android:layout_width="match_parent"
11        android:layout_height="match_parent"></com.jcodecraeer.xrecyclerview.XRecyclerView>
12 </RelativeLayout>
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent">
 5
 6     <ImageView
 7         android:id="@+id/header"
 8         android:layout_width="match_parent"
 9         android:layout_height="match_parent"
10         android:src="@drawable/meinv5"/>
11 </LinearLayout>
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     xmlns:cardview="http://schemas.android.com/apk/res-auto"
 6     android:orientation="vertical"
 7     android:padding="5dp">
 8
 9     <android.support.v7.widget.CardView
10         android:layout_width="match_parent"
11         android:layout_height="wrap_content"
12         cardview:cardElevation="3dp">
13
14         <ImageView
15             android:id="@+id/iv"
16             android:layout_width="match_parent"
17             android:layout_height="wrap_content"
18             android:padding="2dp"
19             android:src="@mipmap/ic_launcher" />
20
21     </android.support.v7.widget.CardView>
22
23 </LinearLayout>

时间: 2024-10-04 01:42:54

练习使用XRecyclerView,可上拉下拉刷新。的相关文章

iOS 上拉下拉刷新

1 把李明杰的MJRfresh文件夹拖到工程中 2 然后引入头文件 3 在.m 文件中设置两个变量 4 在viewDidLoad里调用两个方法 5 实现需要调用的两个方法 iOS 上拉下拉刷新,布布扣,bubuko.com

打造android万能上拉下拉刷新框架——XRefreshView (二)

打造Android万能上拉下拉刷新框架--XRefreshView(一) 打造Android万能上拉下拉刷新框架--XRefreshView(三) 一.前言 自从上次发表了打造android万能上拉下拉刷新框架--XRefreshView (一)之后,期间的大半个月一直都非常忙.可是我每天晚上下班以后都有在更新和维护XRefreshView,也依据一些朋友的意见攻克了一些问题,这次之所以写这篇文章.是由于XRefreshView已经到了一个功能相对可靠和稳定的一个阶段.以下我会介绍下Xrefre

打造android万能上拉下拉刷新框架——XRefreshView (一)

一.写在开头的话 之所以写这个东西是因为项目中有用到,需要给stickylistheaders加个刷新,其实就是个framelayout里面有个listview的自定义view布局,但是一些知名的刷新框架我试了下都不支持,pulltoRefresh和XListView都是自己实现了一个可刷新的view,然后让我们来直接使用这个可刷新的view,从而达到可以上拉下拉刷新的目的.我这个需求需要的是一个我告诉他什么时候需要刷新他就能帮我刷新的框架,也就是说不管什么view,只要能告诉框架自己什么时候需

打造Android万能上拉下拉刷新框架--XRefreshView(三)

转载请注明出处:http://blog.csdn.net/footballclub/ 打造Android万能上拉下拉刷新框架–XRefreshView(一) 打造Android万能上拉下拉刷新框架–XRefreshView(二) XRefreshView更新说明 这段时间一直有朋友给我反馈,让我帮忙解决问题,我汇总了下,有以下几种: 1. 处理listview滑动删除与XRefreshView的冲突 2. 处理viewpager和XRefreshView的冲突 3. listview滑动到底部自

ListView实现上拉下拉刷新加载功能

第一步.首先在你项目中创建一个包存放支持下拉刷新和上拉加载的类: 第二步.需要把两个动画导入进来,实现180度旋转与360度旋转: 第三步.需要把支持的下拉与上拉显示的隐藏加载布局给导入进来 第四步.需要添加strings.xml与colors.xml文件的内容添加到项目里面: strings.xml <string name="pull_to_refresh">下拉刷新</string> <string name="release_to_ref

iOS 上拉下拉刷新简单实现代码

一般说到上拉刷新下拉刷新,很多人可能想到的是一个第三方开源框架EGORefresh,下面说下,如何自己写代码实现. UITableView本身是一个UIScrollView,所以UITableView可以实现UIScrollView的代理方法.上拉和下拉刷新无非是UIScrollView偏移到一定程度调用刷新方法. 实现- (void)scrollViewDidScroll:(UIScrollView*)scrollView代理方法即可.代码如下: (void)scrollViewDidScro

UITableableview上拉下拉刷新

#import "ViewController.h" //加入引用的头文件 #import "UIView+MJExtension.h" #import "MJRefresh.h" static const CGFloat MJDuration = 2.0; @interface ViewController ()<UITableViewDelegate,UITableViewDataSource> @property (nonato

android118 上拉下拉刷新列表listView实现

上拉下拉-不刷新特效

上拉下拉-不刷新特效 上拉刷新数据.下拉刷新数据.上拉不刷新数据.下拉不刷新数据 下载地址:http://www.devstore.cn/code/info/1022.html 运行截图:     版权声明:本文为博主原创文章,未经博主允许不得转载.