今天看cjm9的代码时候想把模块梳理一下,顺便再熟悉下mvp,rxjava和retrofit的综合运用。我们先看图


新闻item的具体信息

图片item的具体信息

大概就是上面那样。

下面开始代码分析:
先看下分包:

下面我们看界面的布局文件:
1.fragment_explore.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextView
        android:layout_width="match_parent"android:layout_height="@dimen/tab_height"android:background="@color/color_primary"android:elevation="@dimen/cardview_default_elevation"android:gravity="center_vertical"android:padding="5dp"android:text="@string/explore"android:textColor="#ffffff"android:textSize="16sp" /><LinearLayout
        android:layout_width="match_parent"android:layout_height="@dimen/tab_height"android:background="@color/color_icons"android:elevation="@dimen/cardview_default_elevation"android:orientation="horizontal"><FrameLayout
            android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"><net.lucode.hackware.magicindicator.MagicIndicator
                android:id="@+id/magic_indicator"android:layout_width="match_parent"android:layout_height="match_parent"android:focusable="true" /><TextView
                android:id="@+id/tv_section"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/color_primary_light"android:gravity="center_vertical"android:padding="5dp"android:text="@string/live_exchange"android:textColor="@color/color_icons"android:textSize="12sp" /><ImageView
                android:layout_width="2dp"android:layout_height="match_parent"android:layout_gravity="end"android:alpha="0.3"android:scaleType="centerCrop"android:src="@drawable/background_shadow" /></FrameLayout><ImageView
            android:id="@+id/iv_expandable"android:layout_width="@dimen/tab_height"android:layout_height="@dimen/tab_height"android:layout_weight="0"android:background="?selectableItemBackgroundBorderless"android:padding="8dp"android:scaleType="centerCrop"android:src="@drawable/ic_expand_open" /></LinearLayout><FrameLayout
        android:layout_width="match_parent"android:layout_height="match_parent"><android.support.v4.view.ViewPager
            android:id="@+id/viewpager"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/color_layout_background" /><ScrollView
            android:id="@+id/scroll_view"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/color_layout_background"><LinearLayout
                android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><android.support.v7.widget.RecyclerView
                    android:id="@+id/recyclerview_selected"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:background="@null" /><LinearLayout
                    android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="end"android:layout_weight="0"android:orientation="horizontal"><TextView
                        android:layout_width="match_parent"android:layout_height="wrap_content"android:padding="5dp"android:text="@string/explore_drag"android:textColor="@color/color_accent"android:textSize="12sp" /><TextView
                        android:layout_width="match_parent"android:layout_height="wrap_content"android:padding="5dp"android:text="@string/explore_delete"android:textColor="@color/color_error"android:textSize="12sp" /></LinearLayout><ImageView
                    android:layout_width="match_parent"android:layout_height="1dp"android:layout_marginLeft="5dp"android:layout_marginRight="5dp"android:layout_weight="0"android:src="@color/color_divider" /><TextView
                    android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="0"android:padding="5dp"android:text="点击添加更多栏目"android:textSize="12sp" /><android.support.v7.widget.RecyclerView
                    android:id="@+id/recyclerview_unselected"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:background="@null" /></LinearLayout></ScrollView></FrameLayout></LinearLayout>

这布局搭建很巧妙,不是通过设置Visible进行小界面的替换,而是通过动画,利用framelayout的特性进行显示和消失的。

Android项目CJM9之新闻浏览模块的实现相关推荐

  1. 【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )

    文章目录 I . 为现有项目配置 视图绑定 ( ViewBinding ) 应用 II . 视图绑定 ( ViewBinding ) 定制 III . 视图绑定 ( ViewBinding ) 对于正 ...

  2. Android项目2:新闻+视频聚合App——萌土日报

    前言:本人独立开发的新闻+视频聚合App.通过这个项目,我不仅掌握了Android移动开发常见的控件和布局的使用,还有通用的框架Okhttp.Glide.Jsoup.腾讯X5WebView,能快速开发 ...

  3. Android项目分包(按功能模块)

    分包是一个开放性的问题,它并没有固定或最优的方案,但是不好的分包策略带来的影响将会一直持续在App的开发迭代周期中,给开发带来一定的麻烦:如:耦合性 ,不易维护,重用难度高 下面介绍一下一种分包策略( ...

  4. 〖Python 数据库开发实战 - Python与MySQL交互篇⑫〗- 项目实战- 实现新闻管理模块

    订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...

  5. 【Android项目实战 | 从零开始写app(十二)】实现app首页智慧服务热门推荐热门主题、新闻

    说在前面,由于各种adapter,xml布局,bean实体类,Activity,也为了让看懂,代码基本都是"简单粗暴直接不好看",没啥okhttp和util工具类之类的封装,本篇幅 ...

  6. 【Android项目实战 | 从零开始写app(十三)】实现用户中心模块清除token退出登录信息修改等功能

    五一后,被ji金伤了,哇呜呜,还是得苦逼老老实实打工写代码,看下面吧 本篇实现效果: 实现登录用户名展示到用户中心页面上,并且页面有个人信息,订单列表,修改密码,意见反馈发送到服务端,前面登录后,通过 ...

  7. Android公共jar,使用JitPack管理Android项目中公共模块库

    随着项目的功能越来越多,代码和模块维护也越来越复杂,为了减少主项目的代码量,一般都会将一些公共使用的类或者功能模块抽离出来,与主项目解耦分离,当主项目中需要使用的时候,直接进行引用即可. 现在Andr ...

  8. android注册文件打开,Android项目实战系列—基于博学谷(三)注册与登录模块

    由于这个模块内容较多,篇幅较长,请耐心阅读. 注册与登录模块分为三个部分 [x] [欢迎界面]() [x] [注册界面]() [x] [登录界面]() 一.欢迎界面 1.创建工程,命名为BoXueGu ...

  9. Android项目实战系列—基于博学谷(四)我的模块(上)

    由于这个模块内容较多,篇幅较长,请耐心阅读. "我"的模块分为四个部分 我的界面 设置界面 修改密码界面 设置密保和找回密码 一."我"的界面 1.底部导航栏 ...

最新文章

  1. 【BZOJ-3712】Fiolki LCA + 倍增 (idea题)
  2. LIGHTOJ 1005(组合数学)
  3. 入门 | 如何为你的回归问题选择最合适的机器学习方法?
  4. IOS UIPageControl的设置点为一张图片
  5. binutils工具集之---ar
  6. linux黑板模式,敲黑板!怎样使用 Linux stat 命令创建灵活文件列表?
  7. php 关于token、签名、加密的一点理解
  8. Qt|表格代理的实现及使用代码qtableview和qtablewidget均适用
  9. 原生小说APP源码出售,可二次开发,小说阅读app源码
  10. java 412_http 412问题
  11. html转邮件html格式转换,如何把电子邮件格式改成HTML格式
  12. 多力食用油:技术赋能产品品质,健康深植品牌理念
  13. Python运用循环实现模拟登录
  14. 汉诺塔系列问题: 汉诺塔II、汉诺塔III、汉诺塔IV、汉诺塔V、汉诺塔VI、汉诺塔VII
  15. 2017京东春招实习生招聘编程题
  16. 数位dp【模板 + 老年康复】
  17. vue基础 - 11 (组件间的通信:event bus -- 事件车,$emit,$on,$off,封装一个事件车)
  18. 钉钉与wcp知识库集成工具
  19. Ubuntu 安装Trac
  20. SpringBoot 项目上传文件异常【java.io.IOException: Stream closed】

热门文章

  1. 【元器件学习笔记—电阻】(7)——电阻串并联电路
  2. DeepFlow高效的光流匹配算法(上)
  3. DeepFlow: Deep Learning-Based Malware Detection by Mining Android Application
  4. App下载安装量如何统计
  5. SIPP测试使用指导
  6. ※ 数值信息——除二取余
  7. python用链表求两数之和_python 算法 - 008 计算两个链表所代表的整数之和 (整数相加法)...
  8. 怎样制作Lrc歌词文件
  9. 微信智能机器人助手,基于hook技术,自动聊天机器人
  10. 中职一年级计算机英语课件,职高一年级英语期中试题