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函数的请求,想要什么数据,直接在这里请求即可。
Diycode开源项目 NodeListFragment分析的更多相关文章
- Diycode开源项目 BaseApplication分析+LeakCanary第三方+CrashHandler自定义异常处理
1.BaseApplication整个应用的开始 1.1.看一下代码 /* * Copyright 2017 GcsSloop * * Licensed under the Apache Licens ...
- DiyCode开源项目 BaseActivity 分析
1.首先将这个项目的BaseActivity源码拷贝过来. /* * Copyright 2017 GcsSloop * * Licensed under the Apache License, Ve ...
- Diycode开源项目 ImageActivity分析
1.首先看一下效果 1.1做成了一个GIF 1.2.我用格式工厂有点问题,大小无法调到手机这样的大小,目前还没有解决方案. 1.3.网上有免费的MP4->GIF,参考一下这个网站吧. 1.4.讲 ...
- Diycode开源项目 UserActivity分析
1.效果预览 1.1.实际界面预览 1.2. 这是MainActivity中的代码 这里执行了跳转到自己的用户界面的功能. 1.3.点击头像或者用户名跳转到别人的页面 UserActivity的结构由 ...
- Diycode开源项目 TopicContentActivity分析
1.效果预览以及布局分析 1.1.实际效果预览 左侧话题列表的布局是通过TopicProvider来实现的,所以当初分析话题列表就没有看到布局. 这里的话题内容不是一个ListView,故要自己布局. ...
- Diycode开源项目 LoginActivity分析
1.首先看一下效果 1.1.预览一下真实页面 1.2.分析一下: 要求输入Email或者用户名,点击编辑框,弹出键盘,默认先进入输入Email或用户名编辑框. 点击密码后,密码字样网上浮动一段距离,E ...
- Diycode开源项目 MainActivity分析
1.分析MainActivity整体结构 1.1.首先看一下这个界面的整体效果. 1.2.活动源代码如下 /* * Copyright 2017 GcsSloop * * Licensed under ...
- DiyCode开源项目 AboutActivity分析
1.首先看一下效果 这是手机上显示的效果: 1.1首先是一个标题栏,左侧一个左箭头,然后一个图标. 1.2然后下方是一个可以滑动的页面. 1.3分成了7个部分. 1.4DiyCode的图标. 1.5然 ...
- DiyCode开源项目 TopicActivity 分析
1.首先看看TopActivity效果. 2.TopicActivity是一个继承BaseActivity的.前面分析过BaseActivity了.主要有一个标题栏,有返回的图标. 3.贴一下T ...
随机推荐
- 使用SpringSession管理分布式系统的会话Session
在我方供应链项目分布式部署的环境下,需要在统一网关服务中管理访问的Session,即无论访问请求路由到哪一个网关服务环境,使用的都是相同的HttpSession,这样就保证了在用户登录之后,能够使用统 ...
- /usr/local/sbin/arpspoof
/usr/local/sbin/arpspoof arpspoof -t 攻击者ip地址 网关ip地址 稍等系,被攻击者机器的arp的缓存就已经变了.
- python3基础08(exec、bytearray使用等)
#!/usr/bin/env python# -*- coding:utf-8 -*- str="test"print(ascii(str))a=bytearray("a ...
- SqlServer报错:主体“dbo”不存在
某台SqlServer数据库执行订阅发布的时候,报错: 无法作为数据库主体执行,因为主体“dbo”不存在.无法模拟这种类型的主体,或您没有所需的权限.(源:MSSQLServer,错误号:15517) ...
- Webstrom使用手册小记
全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/10883350.html,多谢~=.= 1.从git上拉取项目 或者 2.切换分支(webstro ...
- c++ STL stack容器成员函数
这是后进先出的栈,成员函数比较简单,因为只能操作栈顶的元素.不提供清除什么的函数. 函数 描述 bool s.empty() 栈是否为空(即size=0).若空,返回true,否则,false. vo ...
- HDU3973 线段树 + 字符哈希
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3973 , 线段树 + 字符哈希,好题. 又学了一种新的哈希方法,hhhh~ 解法: 想法是用P进制的数 ...
- django建议入门-FYI
django 简易博客 现在正式开始博客开发 1安装官方发布版 官方发布的版本带有一个版本号,例如1.0.3或1.1,而最新版本总是可以在http://www.djangoproject.com/do ...
- 【洛谷2152】[SDOI2009] SuperGCD(Python好题)
点此看题面 大致题意: 给你两个长度\(\le10000\)的正整数,让你求它们的\(gcd\). Python 高精请绕道. 这题的正解应该是Python. 对于这种高精题,肯定是Python最方 ...
- 【转载】2018 hosts 持续更新访问 gu歌【更新于:2018-05-03】
修改HOSTS实现免费,简单访问谷歌的目的 也是比较稳定的方法.修改hosts.修改hosts的方法,原理在于直接存储谷歌网站的IP地址.这样就不用DNS来解析网址了.也就是说,当我们输入谷歌 ...