本文链接:https://rainmonth.github.io/posts/A181208.html
摘要
Android 系统架构——MVP模式、MVC模式和MVVM模式
Android 控件——ViewPager的无限循环与自动滚动实现
https://rainmoth.github.io/posts/A181005.html
Android ViewPager的无限循环与自动滚动实现
前言
关于ViewPager时Android开发时经常要用到的控件,但系统提供的ViewPager往往总有一些功能限制,如不能无限循环,不能自动滚动,今天就介绍ViewPager无限循环和自动滚动的不同实现。
实现思路
实现方式有很多种,具体如下,后面会分析各种实现方式的优缺点。
Android 工具命令——Android Studio 升级到3.0运行项目指北
Android 杂谈——SdkVersion那些事儿
Android 系统源码分析——Launcher3分析之LauncherModel
Android Launcher3分析——LauncherModel
接上篇Android Launcher3分析——开篇,上篇提到LauncherModel是Launcher3处理数据的核心,这当然不是瞎掰的,我们用具体的代码分析来予以佐证。
LauncherModel本身继承自BroadcastReceiver,实现了OnAppsChangedCallbackCompat接口,该接口在LauncherAppsCompat.java中定义,由LauncherModel中实现,并在LauncherAppsCompat子类的内部类PackageMonitor(API16以上)(继承BroadcastReceiver类型)或WrapperCallback(API15以下)调用,源码中关于LauncherModel的说明,大致含义如下:
保持Launcher的内存状态。在内存静态区应该只能有一个LauncherModel的实例,同时它还为Launcher提供了一系列的更新数据库的Api。
Android 系统源码分析——Launcher3自定义控件之Workspace
Android Launcher3分析——自定义控件之Workspace
绘制方面
可以参考文章Android View的绘制流程分析
onMeasure
Workspace 并没有进行什么测量工作,测量工作都交给其父类PagedView处理,看看PagedView的onMeasure如何处理的。
Android 系统源码分析——Launcher3分析开篇
https://rainmonth.github.io/posts/A180702.html
Android Launcher3分析——开篇
简介
Launcher就是一个Activity,Launcher的源码中也是继承的Activity。直观体现就是手机的桌面,当我们打开手机的时候,手机的桌面就是Launcher,一个Activity,只是这个Activity做的事情比较多:
- View方面,可以左右滑动,可以响应长按操作;
- 逻辑方面,可以承载手机中所有应用的快捷方式,是其他程序的入口;
总的来说,Launcher就是一个包含了许多自定义控件的复杂Activity。