1
1
package com .chinaztt .fda .test .ComInstance ;
2
2
3
3
import android .os .Bundle ;
4
+ import android .os .Handler ;
5
+ import android .support .v4 .widget .SwipeRefreshLayout ;
4
6
import android .support .v7 .widget .GridLayoutManager ;
5
7
import android .support .v7 .widget .RecyclerView ;
6
8
import android .view .View ;
7
9
import android .widget .LinearLayout ;
8
10
import android .widget .TextView ;
11
+ import android .widget .Toast ;
9
12
10
13
import com .chinaztt .fda .ui .R ;
11
14
import com .chinaztt .fda .ui .base .BaseActivity ;
12
15
16
+ import java .util .ArrayList ;
17
+ import java .util .List ;
18
+
13
19
/**
14
20
* 当前类注释:
15
21
* 项目名:FastDev4Android
@@ -23,18 +29,87 @@ public class ComInstanceActivity extends BaseActivity {
23
8000
29
private LinearLayout top_bar_linear_back ;
24
30
private TextView top_bar_title ;
25
31
private RecyclerView instance_recycler ;
32
+ private ComInstanceAdapter adapter ;
33
+ private SwipeRefreshLayout instance_swiperefreshlayout ;
34
+ private int lastVisibleItem ;
35
+ private GridLayoutManager gridLayoutManager ;
36
+ //是否正在加载更多的标志
37
+ private boolean isMoreLoading =false ;
26
38
@ Override
27
39
protected void onCreate (Bundle savedInstanceState ) {
28
40
super .onCreate (savedInstanceState );
29
41
setContentView (R .layout .com_instance_layout );
30
42
top_bar_linear_back =(LinearLayout )this .findViewById (R .id .top_bar_linear_back );
43
+ instance_swiperefreshlayout =(SwipeRefreshLayout )this .findViewById (R .id .instance_swiperefreshlayout );
44
+ //设置刷新时动画的颜色,可以设置4个
45
+ instance_swiperefreshlayout .setProgressBackgroundColorSchemeResource (android .R .color .white );
46
+ instance_swiperefreshlayout .setColorSchemeResources (android .R .color .holo_blue_light ,
47
+ android .R .color .holo_red_light , android .R .color .holo_orange_light ,
48
+ android .R .color .holo_green_light );
31
49
top_bar_linear_back .setOnClickListener (new CustomOnClickListener ());
32
50
top_bar_title =(TextView )this .findViewById (R .id .top_bar_title );
33
51
top_bar_title .setText ("综合实例" );
34
52
instance_recycler =(RecyclerView )this .findViewById (R .id .instance_recycler );
35
- GridLayoutManager gridLayoutManager =new GridLayoutManager (this ,2 );
53
+ final GridLayoutManager gridLayoutManager =new GridLayoutManager (this ,2 );
36
54
instance_recycler .setLayoutManager (gridLayoutManager );
37
- instance_recycler .setAdapter (new ComInstanceAdapter (this ,InstanceDataUtils .getInstanceBeans ()));
55
+ instance_recycler .setAdapter (adapter = new ComInstanceAdapter (this , InstanceDataUtils .getInstanceBeans ()));
56
+ //添加Item点击监听事件
57
+ adapter .setOnItemClickListener (new ComInstanceAdapter .OnItemClickListener () {
58
+ @ Override
59
+ public void onItemClick (View view , int position ) {
60
+ Toast .makeText (ComInstanceActivity .this ,"点击了第" +position +"项" ,Toast .LENGTH_SHORT ).show ();
61
+ }
62
+ });
63
+ //下拉刷新
64
+ instance_swiperefreshlayout .setOnRefreshListener (new SwipeRefreshLayout .OnRefreshListener () {
65
+ @ Override
66
+ public void onRefresh () {
67
+ new Handler ().postDelayed (new Runnable () {
68
+ @ Override
69
+ public void run () {
70
+ List <InstanceBean > temp =new ArrayList <InstanceBean >();
71
+ for (int i =0 ;i <5 ;i ++){
72
+ InstanceBean bean =new InstanceBean ("我是杨颖Item" +i ,R .drawable .baby );
73
+ temp .add (bean );
74
+ }
75
+ adapter .addRefreshBeans (temp );
76
+ instance_swiperefreshlayout .setRefreshing (false );
77
+ Toast .makeText (ComInstanceActivity .this , "更新了五条数据..." , Toast .LENGTH_SHORT ).show ();
78
+ }
79
+ },3500 );
80
+ }
81
+ });
82
+ //上拉加载更多
83
+ instance_recycler .setOnScrollListener (new RecyclerView .OnScrollListener () {
84
+ @ Override
85
+ public void onScrollStateChanged (RecyclerView recyclerView , int newState ) {
86
+ super .onScrollStateChanged (recyclerView , newState );
87
+ if (newState == RecyclerView .SCROLL_STATE_IDLE && lastVisibleItem + 1 == adapter .getItemCount ()) {
88
+ if (!isMoreLoading ){
89
+ isMoreLoading =true ;
90
+ new Handler ().postDelayed (new Runnable () {
91
+ @ Override
92
+ public void run () {
93
+ List <InstanceBean > temp =new ArrayList <InstanceBean >();
94
+ for (int i = 0 ; i < 5 ; i ++) {
95
+ InstanceBean bean =new InstanceBean ("我是MoreItem" +i ,R .drawable .meinv );
96
+ temp .add (bean );
97
+ }
98
+ adapter .addMoreBeans (temp );
99
+ Toast .makeText (ComInstanceActivity .this , "上拉加载了五条数据..." , Toast .LENGTH_SHORT ).show ();
100
+ isMoreLoading =false ;
101
+ }
102
+ },2000 );
103
+ }
104
+ }
105
+ }
106
+
107
+ @ Override
108
+ public void onScrolled (RecyclerView recyclerView , int dx , int dy ) {
109
+ super .onScrolled (recyclerView , dx , dy );
110
+ lastVisibleItem = gridLayoutManager .findLastVisibleItemPosition ();
111
+ }
112
+ });
38
113
39
114
}
40
115
class CustomOnClickListener implements View .OnClickListener {
0 commit comments