半年前,使用这个框架的开发者就有许多人催促我写一个完整的使用帮助教程,我一个是懒,一个是忙,就一直没写,今天,我要来写这个框架的详细介绍了,希望能够让大家快速的上手使用这个智能的框架(也可以说是小聪明):

先给大家一个GitHub直通车

下面分别是本框架有的分类,我会为大家一一介绍

  • YzsBaseActivity
  • YzsBaseSupportFragmentActivity
  • YzsBaseFragment
  • YzsBaseHomeFragment
  • YzsBaseListFragment与YzsBaseMvpListFragment
  • YzsBaseListTypeFragment与YzsBaseMvpListTypeFragment
  • YzsBaseWebFragment

YzsBaseActivity

本框架提倡以fragment为展示页面,以activity为容器,所以就不过多介绍YzsBaseActivity,也因为该页面逻辑与YzsBaseFragment大量重复,所以会在YzsBaseFragment中进行介绍。

YzsBaseSupportFragmentActivity

该activity是作为容器使用的
- 方法
1. setFragment
设置整个架构的第一个fragment
2. onCreateFragmentAnimator
设置默认Fragment动画,默认无动画,可重写设置其他动画,具体可见源码。

YzsBaseFragment

  • 标题栏
    首先在页面中,我们会要求开发者进行判断,fragment是否使用状态栏,状态栏的布局方式是与布局竖向排列还是覆盖在内容区之上,使用的toolbar的布局是什么。

    1. showToolBar
      该方法使用时需要重写,默认返回false,功能为是否显示Toolbar。
    2. getToolBarResId
      该方法使用时需要重写,返回值为toolbar布局,如果showToolbar设置为false,则不会调用该方法。
    3. toolbarCover
      该方法使用时需要重写,返回值为toolbar与页面布局的排列方式,ture为覆盖在内容区上方,false为使用竖向排列。
    4. initToolBar
      该方法使用时需要重写,该方法为初始化toolbar布局控件,如果使用默认toolbar布局,这里会进行初始化,如果使用自定义toolbar布局,则需重写该方法,将view重新进行初始化。
    5. immersionEnabled
      当前页面Fragment支持沉浸式初始化。默认返回false,可设置支持沉浸式初始化
    6. immersionInit
      状态栏初始化(immersionEnabled默认为false时不走该方法)
      该功能使用的是ImmersionBar框架,该框架的具体使用请详见github
  • 初始化

    1. getLayoutRes
      获取布局文件,由于此框架做的是分段式布局,所以此方法的布局只是中间部分的布局。
    2. initView
      初始化控件,findview。
    3. initLogic
      逻辑内容初始化,一般写各种参数赋值,控件初始化等。
    4. getBundleExtras
      该方法使用时需要重写,重写该方法的参数能够获取bundle信息。
  • MVP模式的使用

    1. setMvp
      设置界面是否使用mvp模式,如果想使用mvp架构,则需要在该类中这样使用
      MvpDemoFragment extends YzsBaseFragment<TestPresenter, TestModel>
      并重写initPresenter方法,在该方法中调用如下方法
      mPresenter.setVM(this, mModel);
    2. initPresenter
      简单页面无需mvp就不用管此方法即可,完美兼容各种实际场景的变通

YzsBaseHomeFragment

该类可以自动识别viewpager和framlayout的使用,在创建layout的时候,需要使用指定id
CommonTabLayout 使用id为R.id.yzs_base_tabLayout
ViewPager使用id为R.id.yzs_base_tabLayout_viewPager
FrameLayout使用id为R.id.yzs_base_tabLayout_frameLayout
使用者需要在ViewPager与FrameLayout中选择一个使用,使用哪个view,在layout中进行声明指定id

  • 使用方式
    该类可使用YzsBaseFragment的所有方法,使用该父类的时候,需使用指定控件,并使用指定id,这样才能保证初始化的正常,至于页面布局,则由开发者自行设定

    1. ViewPager
      如果使用ViewPager则需使用@id/yzs_base_tabLayout_viewPager
    2. CommonTabLayout
      自定义控件,使用方法请点击进入该链接,该控件为替代官方Tablayout,使用指定@id/yzs_base_tabLayout
  • TAB设置

    1. initTab
      设置TabLayout属性,所有关于TabLayout属性在这里设置
    2. setmFragments
      初始化tab中的fragment集合,必须在initTab中调用,可使用get方法获取fragments
    3. setmIconSelectIds与setmIconUnSelectIds
      设置TAB选中与未选中图标,在initTab中调用,如果不需要显示图标则不需要调用,同样,可使用get方法获取图标
    4. setmTitles
      设置TAB文字
    5. setInitChooseTab
      如果使用viewpager,初始化选中必须用该方法,设置默认显示tab
  • 监听回调

    1. onTabSelect
      tab的点击选中回调
    2. onTabReselect
      tab的再次选中回调

YzsBaseListFragment与YzsBaseMvpListFragment

这几个列表类是也是我灵机一动想出来的,用了一些新的处理思路,使用起来就会更加便捷,在创建类时,我们需要声明该页面的类型,该页面有默认layout,如果需要自定义,则需要使用指定控件和指定id
SmartRefreshLayout使用id为yzs_base_refreshLayout,RecyclerView使用id为yzs_base_list,关于SmartRefreshLayout的使用方法,大家请自行查看原网址,同时,如果使用MVP模式,不止需要该数据类型,同时需要声明使用的BasePresenter与BaseModel,下面我就来为大家介绍下方法


- 初始化设置
1. initSetting
初始化各种状态处理,在这个方法里处理的是recyclerview的所有的初始化,包括对他的展示形式,是list或grid或瀑布流等设置
2. setListType
设置布局管理type,设置recyclerview的排列方式是list或grid或瀑布流等设置
3. setSpanCount
为grid样式和瀑布流设置横向或纵向数量,list样式无效
4. isOpenLoad
是否开启刷新和加载更多,默认不开启
5. setmPageSize
设置list每页数量,如果开启加载更多,设置该方法会调用自动加载判断,如果获取到的数据数量小于该值,则会调用到加载完成,如果等于该值,则会调用下一页。
6. initItemLayout
初始化recyclerview子布局,该类只支持同样类型list

  • 智能加载方法

    1. refreshListener
      刷新回调,如果使用者开启了刷新,则需重写该方法,已获取回调,在该方法处进行刷新请求
    2. loadMoreListener
      加载更多回调,如果使用者开启了加载更多,则需重写该方法,已获取回调,在该方法处进行加载请求
    3. autoListLoad
      这个方法也是整个baseList的核心方法,我们在获取数据的回调中调用该方法,内部的方法就会自动的将数据进行处理,自动分辨为允许加载更多,还是加载完成,还是刷新完成,同时,使用者需要设置空布局的文字与图片,之后我会加上View的方法,可以支持点击重新加载等支持。
    4. MyHolder
      该方法为adapter的内部类,我们在这个方法里进行item操作,由于我们使用的是BaseRecyclerViewAdapterHelper,具体操作请自行查看。
    5. autoRefresh
      该方法为自动加载,使用者根据需要自行调用,调用后,效果与手动刷新相同。
    6. changeShowType
      该方法用于动态改变recyclerview的布局管理器,提供改变显示方法(该方法用于布局显示后动态改变显示方式)

YzsBaseListTypeFragment与YzsBaseMvpListTypeFragment

这两个类与上方方法几乎一致,不同的是这两个类是处理多重布局的list类别,其余方法一致。

  • 方法

    1. setRcTypeRes
      设置adapter的多重布局的item的layout

YzsBaseWebFragment

该页面为专门处理web页面处理,调用方法简单

  • 方法

    1. initWebView
      该页面只需使用一个方法,在页面中调用该方法时,一般情况下只需放入一个url,就可以完成,其余重名方法,可以根据自己需求自行调用

这些方法是本框架的基本方法,还有很多方法,需要你们去看demo,才可以了解,有付出才有回报对不。

欢迎长按下图 -> 识别图中二维码或者扫一扫关注我的公众号,不会让你失望的奥,就是本人更新有时不及时,希望大家谅解

YzsBaseActivity框架方法详解相关推荐

  1. python语言的格式框架_django框架模板语言使用方法详解

    本文实例讲述了django框架模板语言使用方法.分享给大家供大家参考,具体如下: 模板功能 作用:生成html界面内容,模版致力于界面如何显示,而不是程序逻辑.模板不仅仅是一个html文件,还包括了页 ...

  2. Python的Django框架中forms表单类的使用方法详解2

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

  3. python的装饰器迭代器与生成器_python3 装饰器、列表生成器、迭代器、内置方法详解等(第四周)...

    前言: 为什么要学习python3? 原因: 1.学习一门语言能力 2.通过该语言能力完成测试自动化以及独立完成自测框架知识 那么我要做什么呢? 1.每天花十个小时完成python3的学习 要在什么地 ...

  4. pycharm 运行celery_在 Pycharm 安装使用black的方法详解

    PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自动完 成.单元测试.版本控制 ...

  5. Java基础提升篇:equals()与hashCode()方法详解

    概述 java.lang.Object类中有两个非常重要的方法: public boolean equals(Object obj) public int hashCode() Object类是类继承 ...

  6. java定时任务框架elasticjob详解

    这篇文章主要介绍了java定时任务框架elasticjob详解,Elastic-Job是ddframe中dd-job的作业模块中分离出来的分布式弹性作业框架.该项目基于成熟的开源产品Quartz和Zo ...

  7. 集合框架 Queue---BlockingQueue详解

    转载自  集合框架 Queue---BlockingQueue详解 摘要:本例介绍一个特殊的队列:BlockingQueue,如果BlockingQueue是空的,从BlockingQueue取东西的 ...

  8. xpath 取标签下所有文字内容_对Xpath 获取子标签下所有文本的方法详解

    对Xpath 获取子标签下所有文本的方法详解 在爬虫中遇见这种怎么办 想提取名称, 但是 名称不在一个标签里 使用xpath string()方法 例如 data.xpath("string ...

  9. linux ipset 流量,linux中ipset命令的使用方法详解

    linux中ipset命令的使用方法详解 发布时间:2020-10-25 17:07:19 来源:脚本之家 阅读:97 作者:lijiaocn 栏目:服务器 ipset介绍 iptables是在lin ...

最新文章

  1. pLSA概率潜在语义分析
  2. 走在技术前沿的 iOS 架构实现
  3. pinctrl虚拟spi的linux驱动,linux内核pinctrl驱动的理解和总结
  4. 从微信服务器获取用户信息,微信小程序Ⅴ [获取登陆用户信息,重点openID(详解)]...
  5. 打印菱形(Java)
  6. 25岁程序员 VS 35岁程序员,太真实!
  7. jquery.datatables使用
  8. 送专利啦~~ .Net高阶异常处理之TopLevelEH
  9. 天下无贼中经典的句子
  10. 首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。其次, 编写一个主类,在主类中测试Account类的功能。(已完善)...
  11. 幼儿抽象逻辑思维举例_四个锻炼幼儿推理能力的小游戏,让孩子的逻辑思维更上一层楼...
  12. dell服务器分区表修复,完美恢复原产Dell Recovery软件、修复环境(添加教程)
  13. cssie兼容性配置
  14. Struts2默认拦截器
  15. 深度学习在时空大数据分析中的应用
  16. 抖音下载量超 Facebook;华为新款手机陷“绿屏”门;苹果又遭起诉 | 极客头条...
  17. 【电子签到】v1.0版本正式上线!免费下载!
  18. OrientedRepPoints_DOTA环境搭建训练流程及问题
  19. 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘
  20. jqGrid API 及用法

热门文章

  1. 程序员的梦想,打工是不可能打工的,这辈子不可能打工的!
  2. JDL-1220A0.2~9.99A AC110V电流继电器
  3. 阿里云ACK联合云效助力上海博卡DevOps转型
  4. linux磁盘快速拷贝,UNIX下用DD做磁盘完整拷贝
  5. 2023年QQ群托软件 假人自动聊天 下注机器人赶紧退了,都是假人
  6. 微信小程序实现订单多商品评价(页面模板)
  7. 软件测试的入行与转型
  8. python如何打开.ima文件格式的医学影像(已爬坑,.IMA为西门子CT设备的另一种医学影像文件格式)
  9. 华为3Com 802.1认证客户端西安建筑科技大学专用版 程序写完了
  10. RabbitMQ单机安装