android源码学习
西电吴同学
这个作者很懒,什么都没留下…
展开
-
Android事件分发机制详解
概述之前在学习android事件方法机制的时候,看过不少文章,但是大部分都讲的不是很清楚,我自己理解的也是云里雾里,也尝试过阅读源码,看得我更是不知所措。最近阅读了《Android开发艺术探索》一书中相关的章节,茅塞顿开,写下本文作为阅读笔记,以便以后查阅。三个重要的方法 public boolean dispatchTouchEvent(MotionEvent ev)事件传递过来的时候这个方原创 2016-07-21 20:42:24 · 2430 阅读 · 16 评论 -
Android Handler详解--理论篇
概述在平时的开发中,我们一般会在子线程请求数据,因为Android的UI操作不是线程安全的,所以我们会有切换到UI线程(主线程)更新UI的需求。有以下两种方法:使用Activity的runOnUiThread方法。使用Handler。其实查看源码就能发现runOnUIThread方法还是基于Handler的,接下来就详细解析Handler机制。相关类Handler机制其实是Handler、Me原创 2016-11-15 17:18:09 · 451 阅读 · 0 评论 -
Android Handler详解--实战篇
概述之前写了一篇文章讲解Handler机制,但是我觉得理论总是不比实践来的深刻,所以今天我们来自己实现一个Handler。如果没看过之前的文章,建议先看一下Android Handler详解–理论篇。MyMessageQueue首先实现MyMessageQueue,当然在这之前我们要实现MyMeessage类public class MyMessage { public MyHandler t原创 2016-11-15 21:28:02 · 462 阅读 · 0 评论 -
PagerSlidingTabStrip源码解析
项目简介项目地址https://github.com/astuetz/PagerSlidingTabStrip 该项目是一个配合ViewPager使用的指示器控件,这里的ViewPager的adapter必须是继承FragmentPagerAdapter,且需要重写getPageIconResId(int position)或者getPageTitle(int position)以便指示器显示内容原创 2016-07-05 16:38:09 · 743 阅读 · 0 评论 -
Toast源码解析
子线程中的Toast在写代码的时候发现一个现象,在子线程中使用Toast会crash,错误如下java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()可以很明显的看出问题出在当前线程企图创建Handler,但是由于本线程没有Looper所以crash了,这时候原创 2017-05-27 23:37:40 · 406 阅读 · 0 评论 -
Button点击时滑动的事件传递
背景之前面试的时候遇到一个有关滑动事件的问题,让我十分费解,后来查阅相关资料和源码才得以解决,问的是在一个RecyclerView中,有一个item为Button,如果在按下这个Button的同时进行滑动,Button是否能够保持焦点?相关事件是如何传递的?思考按照以往我对事件传递机制的理解,在按下的时候是一个Down事件ViewGroup->Button,然后滑动的时候就是一系列Move事件,但是原创 2017-11-02 23:56:07 · 874 阅读 · 0 评论 -
仿头条实现EditText的hint上下滚动轮播效果
简介最近看到头条的首页顶部搜索框有一个切换hint文字的动画效果,比较好奇它是怎么实现的,经过一番探索发现这个顶部的搜索框并不是真正的搜索框,点击之后是直接跳转到搜索界面,本身并不是一个EditText。这样的实现方式让我顿时感觉索然无味,同时不禁思考,难道不能在一个EditText控件上实现这样的效果吗?百度、google了一番发现并没有找到相关的效果实现,于是决定自己撸一个。起初并没有头绪...原创 2018-10-21 22:30:53 · 2106 阅读 · 1 评论