一、什么是事件分发 所谓事件分发,就是将一次完整的点击所包含的点击事件传递到某个具体的View或ViewGroup,让该View或该ViewGroup处理它(消费它)。分发是从上往下(父到子)依次传递的,其中可能经过的对象有最上层Activity,中间层ViewGroup,最下层View。 二、Ac ...
分类:
移动开发 时间:
2020-05-08 23:10:09
阅读次数:
92
原理 监听DecorView的可见高度,当虚拟键盘弹出的时候,DecorView的可见高度会变小,这时拿android.R.id.content控件的高度-可见矩形的bottom得到的就是虚拟键盘的高度,代码如下: 使用 在Activity中添加以下代码: ...
分类:
其他好文 时间:
2020-01-19 19:25:58
阅读次数:
108
View 的绘制系列文章: Android View 绘制流程之 DecorView 与 ViewRootImpl Android View 的绘制流程之 Measure 过程详解 (一) Android View 的绘制流程之 Layout 和 Draw 过程详解 (二) Android View ...
分类:
移动开发 时间:
2019-12-12 01:22:51
阅读次数:
111
概述 上一篇 Android DecorView 与 Activity 绑定原理分析 分析了在调用 setContentView 之后,DecorView 是如何与 activity 关联在一起的,最后讲到了 ViewRootImpl 开始绘制的逻辑。本文接着上篇,继续往下讲,开始分析 view 的 ...
分类:
移动开发 时间:
2019-12-01 00:13:20
阅读次数:
97
.使用Java写的Activity程序主要关注输入法处理之前的ViewPreIme和输入法之后的ViewPostIme的处理。 2.输入事件传给的控件称为输入焦点。 3.每一个Window都有一个DecorView也有一个ViewRootImpl 4.java源代码分析使用SourceInsight ...
分类:
移动开发 时间:
2019-05-18 00:50:37
阅读次数:
210
1.事件分发机制概述和原理 答:第一,分发的事件是什么?是down,move,up。 第二,分发的顺序是什么?是activity→window→rootviiew(decorview)→view。 而最后的view是viewgroup和view的集合。 1)如果是传到了viewgroup,首先调用其 ...
分类:
移动开发 时间:
2019-02-26 23:37:06
阅读次数:
253
在做自定义弹窗的时候遇到的问题,如果不继承Dialog 或者popwindow 自己写的通过 getWindow的decorView 给decorView view 动态添加View 和移除View实现弹窗会出现返回按键如果是弹窗情况下需要关闭弹窗(即移除View) ,那么怎么监听返回按键?这里看了 ...
分类:
移动开发 时间:
2018-08-02 23:00:26
阅读次数:
275
1、Activity在onCreate()方法之前调用attach()方法,在attach方法中会创建Window对象。Window对象创建时并没有创建Decor对象。2、用户在Activity中调用setContentView()方法。3、setContentView()调用Window的setContentView()方法。这时会检查DecorView是否存在,如果不存在则调用installD
分类:
移动开发 时间:
2018-05-16 12:50:19
阅读次数:
163
Android 性能优化: 布局优化 内存优化 APK 瘦身 布局优化 工具: Layout Inspector(Android Studio Tools Android Layout Inspector) 说明:通过该工具,可以截取到当前页面的布局树,从根目录 DecorView 开始,很清晰明了 ...
分类:
移动开发 时间:
2018-05-10 11:28:08
阅读次数:
216
// 系统状态栏透明if (Build.VERSION.SDK_INT >=21){ View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View ...
分类:
其他好文 时间:
2018-05-07 21:09:23
阅读次数:
213