Diycode开源项目 NodeListFragment分析

1.整体分析

1.1.作用讲解

  这个类没有用到,只是一个备用的。

  分类列表,用于定制首页内容

  考虑到节点列表一般不会变化,所以直接将数据封装在客户端中,可以直接查看,提高效率。

 

1.2.整体分析

  

  首先是新建这个碎片实例。

  然后是复写RefreshRecycleFragment中的抽象函数,最后执行的initData(),为了获得碎片的结点数据。

  然后是复写RefreshRecycleFragment中注册数据类型的抽象函数。

  最后是具体的Diycode请求函数。


2.局部分析

2.1.成员变量

   

   这里是一个临时变量+一个结点id,都是用来存储外部的传进来的东西。

 

2.2.静态函数,用来新建一个实例

  

  这里传入一个nodeId,从外部传进来的参数。

  然后利用碎片的setArguments方法来保存数据。

 

2.3.复写initData函数,这个是RefreshRecycleFragment最后要执行的方法。

  

  作用很简单,就是将外部传进来的Key_Node_ID用自己类中的变量存储

  然后去调用RefreshRecyclerFragment中的加载更多的函数。

 

2.4.注册数据类型

  

  这里注册数据类型为Topic,然后是Topic的数据内容提供器。都是自定义的。

 

2.5.最后是一个请求

  

  这里调用SDK的请求函数,返回字符串。 


3.总结一下

3.1.这是一个调用SimpleRefreshRecyclerFragment<Topic,GetTopicsListEvent>的一个实例。如果要继承这个封装

  好的类,就是拥有上拉加载更多,下拉刷新的功能的碎片,用处应该很大了。

 

 

3.2.需要修改的地方有将T用一个Bean来代替,一般都是列表项的一个Bean。然后是一个继承BaseEvent<List<T>>

  的一个类,通常都很简单的两个类,可以参考一下这个SDK定义的BaseEvent。

 

3.3.然后比然要写的是一个newInstance了,它接收外部传进来的nodeId,然后利用碎片存储起来,碎片保存数据的

  方式就是fragment.setArguments(bundle),然后通过getArguments.get的方式可以获取存储的数据。

 

3.4.然后是在initData函数中来获取这个nodeId,这里调用了二级继承类RefreshRecyclerFragment中的loadMore

  函数,以及设置可以加载更多,可以刷新的功能。

 

3.5.然后必然的函数为setAdapterRegister,基本上每一个继承者都要实现,将需要的列表项,和列表项的内容提供器

  关联起来,以此表明列表的内容。

 

3.6.最后关键函数是request,主要作用就是进行SDK函数的请求,想要什么数据,直接在这里请求即可。 

posted @ 2017-11-24 23:23  Jason_Jan  阅读(211)  评论(0编辑  收藏  举报