
android_framework源码解析
litefish
never stop,never give up
展开
-
从0开始写MyScrollView
从0开始写MyScrollView上篇文章对ScrollView的具体实现进行了分析,本文根据上篇分析的结果,自己动手写一个ScrollView。step1 跟随手指滑动,很简单,重写2个函数就好了简单的滑动,只要重写onTouchEvent就可以了。然后我们需要内部的LinearLayout高度可以超出MyScrollView,那就在measure过程中进行处理,重写measureChildWit原创 2016-08-05 12:36:33 · 3013 阅读 · 6 评论 -
SparseArray源码分析(未完)
idealByteArraySize首先来看idealByteArraySize这个函数,这是ArrayUtils里的函数。直译函数名,即是“字节数组理想化的大小”,源码如下 public static int idealByteArraySize(int need) { for (int i = 4; i <32; i++) if (need <原创 2015-03-05 10:15:00 · 790 阅读 · 0 评论 -
庖丁解牛之ScrollView
庖丁解牛之ScrollView前言ScrollView可以说是android里最简单的滑动控件,但是其中也蕴含了很多的知识点。今天尝试通过ScrollView的源码来了解ScrollView内部的细节。本文在介绍ScrollView时会忽略以下内容:嵌套滑动,崩溃保存,Accessibility。 ScrollView是一种控件,继承自 FrameLayout,他的子控件远远大于ScrollVie原创 2016-08-05 12:35:36 · 15184 阅读 · 4 评论 -
requestLayout in layout问题
requestLayout in layout问题bug介绍我在写一个自定义控件(ThreePieceScrollView)的时候,写了如下代码,没想到触发了严重的bug。 @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(chan原创 2016-12-14 20:46:08 · 3949 阅读 · 0 评论 -
onGlobalLayout的触发
onGlobalLayout的触发经常用onGlobalLayout,但是对onGlobalLayout的调用一直不敢确定,今天从源码来看看onGlobalLayout什么时候会被触发,onGlobalLayout的是android.view.ViewTreeObserver#dispatchOnGlobalLayout调用的,所以只要看dispatchOnGlobalLayout哪里调就好了。如下原创 2016-12-26 15:22:54 · 22022 阅读 · 1 评论 -
listview源码学习
listview源码学习前言本文从源码角度出发学习listview,主要分析首次RecycleBin的组成,layout的过程,滑动过程,item的点击实现,如何支持Header,notifyDataSetChanged原理。问题用了好几年的listview,有几个问题却一直不清楚 1、如何让一个itemview不被回收,比如我的listview里有个viewpager比较复杂,不想让他被回收又重原创 2016-10-24 18:41:11 · 1358 阅读 · 0 评论 -
android 焦点分发源码解析
TouchModeandroid焦点的概念其实一直都在,我们平时做android’开发的时候往往只有EditText有焦点,其他都不需要关心焦点。但是做ott开发,焦点就是经常要考虑的问题。 早期的android不支持触屏,是通过trackball来控制的,后来多了触屏,android 增加了一种概念,叫TouchMode。当用户通过触屏操作手机的时候自动进入叫TouchMode,当用户通过tra原创 2017-11-13 11:45:36 · 1066 阅读 · 0 评论