移动开发----带头部(headView)和底部(footView)的RecycleView

下载地址:点击这里下载
Tag:

项目介绍:

  .idea 更新gif和图片说明 Sep 26, 2016
  app 修正【刷新完成】至【回滚隐藏】这个过程中用户狂拽,快速滑动有可能出现的状态错误 Oct 9, 2016
  gradle/wrapper 提交代码 Jul 3, 2016
  hfrecyleviewlib HFLineHerComDecoration 绘制方式 drawLine() 更新为 drawRect() Oct 31, 2016
  pics 更新gif和图片说明 Sep 26, 2016
  .gitignore 提交代码 Jul 3, 2016
  README.md 更新gif和图片说明 Sep 26, 2016
  build.gradle 提交代码 Jul 3, 2016
  gradle.properties 提交代码 Jul 3, 2016
  gradlew 提交代码 Jul 3, 2016
  gradlew.bat 提交代码 Jul 3, 2016
  hfrecycleview.gif Add files via upload Jul 3, 2016
  settings.gradle 提交代码 Jul 3, 2016

带头部(headView)和底部(footView)的RecycleView。分装了recycleview.adater里面的初始化和构建。更加便捷的使用的recycleview



效果图


554



554



xml文件



     
     
[Java] 查看源文件 复制代码
?
1
2
3
4
5
6
<!--?xml version=\" 1.0 \" encoding=\"utf- 8 \"?-->
<com.igeek.hfrecyleviewlib.nestedrefreshlayout android:id= "\"@+id/refreshLayout\"" app:pullviewheight= "\"60dp\"" app:pullmaxheight= "\"100dp\"" android:layout_width= "\"match_parent\"" android:layout_height= "\"match_parent\"" android:background= "\"@android:color/white\"" >
 
         <android.support.v7.widget.recyclerview android:id= "\"@+id/recycle\"" android:layout_width= "\"match_parent\"" android:layout_height= "\"match_parent\"" >
 
</android.support.v7.widget.recyclerview></com.igeek.hfrecyleviewlib.nestedrefreshlayout>


部分代码



     
     
[Java] 查看源文件 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
class HeadFootActivity extends Activity implements
     BasicRecyViewHolder.OnItemClickListener,
     BasicRecyViewHolder.OnItemLongClickListener,
     BasicRecyViewHolder.OnHeadViewClickListener,
     BasicRecyViewHolder.OnFootViewClickListener {
 
     RecyclerView recyclerView;
     NestedRefreshLayout refreshLayout;
     TestSingleFHFSingleTypeRecyAdapter adapter;
 
     View loadingView;
     View nodataView;
     View topView;
 
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         refreshLayout= (NestedRefreshLayout) findViewById(R.id.refreshLayout);
         recyclerView = (RecyclerView) findViewById(R.id.recycle);
         loadingView = getLayoutInflater().inflate(R.layout.layout_listbottom_loadingview, null );
         nodataView = getLayoutInflater().inflate(R.layout.layout_list_nodata, null );
         topView = getLayoutInflater().inflate(R.layout.layout_topview, null );
         if (adapter == null ) {
             adapter = new TestSingleFHFSingleTypeRecyAdapter(R.layout.layout_recy_item);
             //添加头部
             adapter.setHeadView(topView);
             //添加底部
             adapter.setFootView(loadingView);
             //添加item的点击事件
             adapter.setItemClickListener( this );
             //添加item的长按事件
             adapter.setItemLongClickListener( this );
             //添加头部的点击事件
             adapter.setHeadClickListener( this );
             //添加底部的点击事件
             adapter.setFootClickListener( this );
             //处理item当中子视图的点击事件
             adapter.addSubViewListener(R.id.item_btn, new View.OnClickListener() {
                 @Override
                 public void onClick(View view) {
                     Toast.makeText(HeadFootActivity. this ,\" 你点击了第 \"+view.getTag().toString()+\" 个button\",Toast.LENGTH_SHORT).show();
                 }
             });
             //处理头部当中子视图的点击事件
             adapter.addHeadSubViewListener(R.id.topview_text, headlistener);
             //处理底部当中子视图的点击事件
             adapter.addFootSubViewListener(R.id.nodataview_text, footlistener);
         }
         recyclerView.setAdapter(adapter);
         //添加滚动事件的监听的处理刷新和加载更多
         recyclerView.addOnScrollListener(srcollListener);
         recyclerView.setLayoutManager( new LinearLayoutManager( this ));
         adapter.refreshDatas(buildListByPosition( 0 ));
         refreshLayout.setOnRefreshListener( new NestedRefreshLayout.OnRefreshListener() {
              @Override
              public void onRefresh() {
                 //1:send network request data
                 //2:refreshLayout.refreshFinish();
              }
         });
     }
}
 
 
@Override
public void OnItemClick(View v, int adapterPosition) {
     //adapterPosition 的位置不一定是数据集当中的位置 获取真实的位置通过  adapter.getPositon(adapterPosition) 获得
     Toast.makeText( this , \"你点击了第 \"+adapter.getPositon(adapterPosition)+\" 个数据item\", Toast.LENGTH_SHORT).show();
}
 
@Override
public void OnItemLongClick(View v, int adapterPosition) {
     //adapterPosition 的位置不一定是数据集当中的位置 获取真实的位置通过  adapter.getPositon(adapterPosition) 获得
     Toast.makeText( this , \"你长按了第 \"+adapter.getPositon(adapterPosition)+\" 个数据item\", Toast.LENGTH_SHORT).show();
}
 
@Override
public void onReCycleFootClick(View view, View clickView) {
     Toast.makeText( this , \"你点击了底部 footView\", Toast.LENGTH_SHORT).show();
}
 
@Override
public void onRecycleHeadClick(View view, View clickView) {
     Toast.makeText( this , \"你点击了顶部 headView\", Toast.LENGTH_SHORT).show();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值