UI
文章平均质量分 87
胡飞洋
公众号:胡飞洋, 爱打篮球、带看电影的Android开发者。
展开
-
“终于懂了” 系列:Android屏幕刷新机制—VSync、Choreographer 全面理解
概要:1、刷新频率、2、单缓冲、双缓冲、三缓冲,掉帧3、编舞者 源码4、异步消息、同步屏障背景当我们谈到 布局优化 时,通常都知道 需要减少布局层级。那么较多层级的布局是如何影响布局展示的呢?类似的,页面卡顿是如何产生的呢?在《Window和WindowManager》中介绍window的添加时提到,会 调用ViewRootImpl的setView()方法,setView()方法会调用requestLayout()方法来请求绘制布局,requestLayout()方法内部又会走到schedul原创 2020-08-21 12:10:29 · 10920 阅读 · 5 评论 -
嵌套滑动通用解决方案--NestedScrollingParent2
之前写过一篇嵌套滑动–NestedScroll-项目实例(淘宝首页缺陷),及CoordinatorLayout 和 AppbarLayout 联动原理,比较了淘宝和京东首页的滑动效果,分析了效果呈现差别的原因,给出了大致的解决方案。当时没有给出demo,只有代码片段,可能导致阅读起来不很清晰,所以这篇就专门再来详细分析相关知识,给出通用的嵌套滑动的解决方案,且附上GitHub的Demo。一...原创 2020-04-05 22:47:51 · 11003 阅读 · 7 评论 -
面试官:子线程 真的不能更新UI ?
从一个异常说起,”Only the original thread that created a view hierarchy can touch its views.“。结合window、handler两章: private void handleAddWindow() { //子线程创建window,只能由这个子线程访问 window的view Bu...原创 2020-01-12 18:58:09 · 7877 阅读 · 10 评论 -
Android中的动画详解--《Android开发艺术探索》阅读笔记——第七章
/** * 动画 测试 * @author hufeiyang */public class AnimationTestActivity extends AppCompatActivity { private Unbinder unbinder; @BindView(R.id.textView1) TextView textView1; @BindV...原创 2020-01-11 18:07:10 · 872 阅读 · 0 评论 -
AppBarLayout 滑动导致 回弹 的问题解决~
AppBarLayout快速滑动导致回弹的解决方案CollapsingToolbarLayout完美解决AppBarLayout的滑动问题自定义AppBarLayout.Behavior,不处理Flinging即可。public class AppBarLayoutBehavior extends AppBarLayout.Behavior { private static fin...原创 2019-11-14 23:20:04 · 1323 阅读 · 0 评论 -
View的工作原理--《Android开发艺术探索》阅读笔记——第四章
文章目录1、ViewRoot 和 DecorView2、 MeasureSpec2.1MeasureSpec2.1MeasureSpec和LayoutParams的对应关系3、View的工作流程3.1Measure过程3.2Layout过程3.3Draw过程4、自定义View4.1自定义view的分类4.2 自定义view 注意点4.3 例子4.4 自定义view的思想1、ViewRoot 和 ...原创 2019-11-10 16:37:27 · 3843 阅读 · 0 评论 -
PopupWindow的show 7.0以后的适配
PopupWindow的show 7.0以后的适配,如下。PopupWindow是在vTarget下方展示的,PopupWindow的上边对齐vTarget的上边,高度是vTarget的上边到屏幕底边。showAtLocation()方法第二个参数Gravity.TOP | Gravity.LEFT表示从屏幕上边show,后面是偏移量。 if (mPopupWindow != null &...原创 2019-10-14 18:20:57 · 460 阅读 · 0 评论 -
嵌套滑动--NestedScroll-项目实例(淘宝首页缺陷),及CoordinatorLayout 和 AppbarLayout 联动原理
目录一、项目实例--电商首页二、CoordinatorLayout 和 AppbarLayout 联动原理刚复习完View事件分发、滑动冲突--《Android开发艺术探索》阅读笔记——第三章part2,接着想起前段时间项目中首页重构,遇到的嵌套滑动问题,以及CoordinatorLayout 和 AppbarLayout 联动原理。去学习了下先关知识。在此记录一下,备忘~学...原创 2019-10-04 17:29:09 · 5104 阅读 · 3 评论 -
View事件分发、滑动冲突--《Android开发艺术探索》阅读笔记——第三章part2
目录一、事件分发1、事件传递规则2、源码分析1)Activity的分发过程:2)顶级View(ViewGroup)的分发过程:分发规则的伪代码来源的详细说明3)view的处理过程:主要是onTouchListener、OnTouchEvent、onClick的关系二、滑动冲突1、冲突场景2、解决原理3、举个例子View的事件分发,指的是 在多层级Vie...原创 2019-10-02 18:51:04 · 1487 阅读 · 0 评论 -
recyclerView 横条指示器——仿淘宝菜单模块
电商首页菜单模块,可以横向滑动,底部的滑动位置指示器 如何实现呢?下图是淘宝首页的示例。首页思路很清晰:1、横向滑动recyclerView: 内容长度w1 大于recyclerView的视图长度w2(这里就是屏幕宽度),两者差值就是在屏幕外的长度。2、位置指示器: 固定的灰色背景 理解为 对应 recyclerView 内容长度w1,可滑动的 橙色指示器 对应recycl...原创 2019-08-29 14:23:25 · 4742 阅读 · 6 评论 -
自定义view:TextSwitcher使用、源码分析(todo)
一、实现效果就是一个列表的多条信息,上下切换展示,上下两条挨着滑动。实现方法,考虑是 两个TextView 使用动画,不断更新text内容。二、TextSwitcher的使用下面代码看到,是集成自TextSwitcher的自定义view。主要:1、 通过setFactory()设置 用于获取 两个切换view的view工厂,然后重写Factory的makeView()方法...原创 2019-07-22 22:13:47 · 598 阅读 · 0 评论 -
自定义view:信息飘窗/弹幕——AutoSwitchTextView
一、实现背景项目中,闪购页面 用于自动切换 展示 购买信息,就是那种 “xxx 10s 买了huawei p30 ” 然后自动翻滚上去,接着底部向上滑出下一条。效果如下图。(感觉有点像连续多个Toast) 也可参考小红书的闪购页面~即,从下面较快的出现,停留展示一会,在缓慢的向上滑出。二、实现思路一开始想的是,使用TextSwitcher实现,因为之前做过类似的文字切...原创 2019-07-16 17:32:45 · 1089 阅读 · 0 评论 -
自定义view:ProgressBar 前景色、背景色、平滑显示进度(简略版)
一、要实现的效果:1、底色;2、进度色(有斜条纹);3、有文字显示状态;4、平滑地展示进度(有前进的过程)。二、实现如下:1、布局使用FrameLayout + textView实现文字状态显示。ProgressBar的 属性android:progressDrawable中设置 底色、进度色(实际就是让设计切的一张图片,clip标签可以实现进度显示效果)。 ...原创 2019-07-08 17:42:11 · 2311 阅读 · 0 评论