Android SnapHelper

01.SnapHelper作用

  • 在某些场景下,卡片列表滑动浏览

02.SnapHelper类分析

  • 查阅可知,SnapHelper继承自RecyclerView.OnFlingListener,并且重写了onFling方法,这个类代码并不多,下面会对重要方法一一解析。
阅读更多

Android ItemTouchHelper

  • 需要实现拖拽的功能如下所示

    • 长按item后拖动,与其他item交换位置
    • 按住item右面的图标后拖动,与其他item交换位置
    • 左滑item变透明并缩小,超出屏幕后,其他item补上
    • 右滑item变透明并缩小,超出屏幕后,其他item补上
  • 几个重要的方法说明

    • 需要自定义类实现ItemTouchHelper.Callback类,并重写其中几个方法
    1
    2
    3
    4
    5
    6
    isLongPressDragEnabled                  是否可以长按拖拽排序
    isItemViewSwipeEnabled Item是否可以被滑动
    getMovementFlags 当用户拖拽或者滑动Item的时候需要我们告诉系统滑动或者拖拽的方向
    onMove 当Item被拖拽的时候被回调
    onSwiped 当View被滑动删除的时候
    onSelectedChanged 当item被拖拽或侧滑时触发
阅读更多

Android RecyclerView ViewHolder

01.ViewHolder的作用

  • ViewHolder作用大概有这些:
    • adapter应当拥有ViewHolder的子类,并且ViewHolder内部应当存储一些子view,避免时间代价很大的findViewById操作
    • 其RecyclerView内部定义的ViewHolder类包含很多复杂的属性,内部使用场景也有很多,而我们经常使用的也就是onCreateViewHolder()方法和onBindViewHolder()方法,onCreateViewHolder()方法在RecyclerView需要一个新类型。item的ViewHolder时调用来创建一个ViewHolder,而onBindViewHolder()方法则当RecyclerView需要在特定位置的item展示数据时调用。
阅读更多

Android LayoutManager

01.LayoutManager作用

  • LayoutManager的职责是摆放Item的位置,并且负责决定何时回收和重用Item。
  • RecyclerView 允许自定义规则去放置子 view,这个规则的控制者就是 LayoutManager。一个 RecyclerView 如果想展示内容,就必须设置一个 LayoutManager

02.LayoutManager样式

阅读更多

Android RecyclerView Adapter

01.RecyclerView.Adapter扮演的角色

  • 一是,根据不同ViewType创建与之相应的的Item-Layout
  • 二是,访问数据集合并将数据绑定到正确的View上

02.重写的方法

阅读更多

Android RecycleView

01.RecycleView的结构

  • 关于RecyclerView,大家都已经很熟悉了,用途十分广泛,大概结构如下所示
    • RecyclerView.Adapter - 处理数据集合并负责绑定视图
    • ViewHolder - 持有所有的用于绑定数据或者需要操作的View
    • LayoutManager - 负责摆放视图等相关操作
    • ItemDecoration - 负责绘制Item附近的分割线
    • ItemAnimator - 为Item的一般操作添加动画效果,如,增删条目等
阅读更多

Android 依赖注入详解

01.什么是依赖注入

  • 有哪些注入的方式可以解耦
    • 举个例子,假如我们的Presenter层需要用网络的数据或数据库的数据,但presenter本身没有请求网络的功能,那么它要依赖model层去请求网络,所以它就需要持有model层的一个实例,我们可以直接通过new的方式去创建,但是这样会使代码耦合严重,那么我们就可以通过一些解耦的手段去让presenter层持有model的引用,比如通过构造方法注入、set方法注入、配置文件注入、注解注入等等,只要达到我们的目的就是好的。
阅读更多

Android 如何生成路由映射文件

01.前沿介绍

  • 在Activity类上加上@Router注解之后,便可通过apt来生成对应的路由表,那么这节就来讲述一下如何通过apt来生成路由表。
  • APT是Annotation Processing Tool的简称,即注解处理工具。它是在编译期对代码中指定的注解进行解析,然后做一些其他处理(如通过javapoet生成新的Java文件)。
  • 整个生成映射文件,大都是仿照阿里ARouter路由器。这里学习使用!

02.定义注解处理器

阅读更多

Android 框架设计与初始化与配置

01.看阿里ARouter整体设计

  • ARouter主要由三部分组成,包括对外提供的api调用模块、注解模块以及编译时通过注解生产相关的类模块。
    • arouter-annotation注解的声明和信息存储类的模块
    • arouter-compiler编译期解析注解信息并生成相应类以便进行注入的模块
    • arouter-api核心调用Api功能的模块
  • annotation模块
阅读更多

Android 通过Router注解实现路由跳转

01.首先看ARouter注解实现方案

  • 如下所示

    1
    2
    3
    4
    5
    6
    7
    8
    //首先通过注解添加下面代码
    @Router(path = "/test/TestActivity")
    public class TestActivity extends BaseActivity {

    }

    //跳转
    ARouter.getsInstance().build("/test/TestActivity").navigation();
阅读更多