目录前言需求效果图编写代码主要问题前言上一篇文章学了下自定义View的onDraw函数及自定义属性,做出来的滚动选择控件还算不错,就是逻辑复杂了一些。这篇文章打算利用自定义view的知识,直接手撕一个安卓侧滑栏,涉及到自定义LayoutParams、带padding和margin的measure和layout、利用requestLayout实现动画效果等,有 ......
239
0
0
2023-06-10
目录前言弹层的形式选择中间弹层左右抽屉弹层顶部弹层底部弹层总结前言当前 App 的设计趋势越来越希望给用户沉浸式体验,这种设计会让用户尽量停留在当前的界面,而不需要太多的跳转,这就需要引入弹层。比如,抖音引入购物功能后,就实现了在观看视频界面可以通过弹层完成加入购物车、下单操作,无需离开当前的视频界面。本篇我们就来讲讲弹层这块需要注意哪些用户体验。弹层的形式 ......
271
0
0
2023-06-10
目录补间动画RotateAnimation动画示例ScaleAnimation动画示例TranslateAnimation动画示例AlphaAnimation动画示例AnimationSet 动画组合动画示例补间动画Android常用的四种补间动画分别为RotateAnimation、ScaleAnimation、TranslateAnimation、Alp ......
347
0
0
2023-06-09
目录基本属性约束强度Visibility属性控件宽高比子控件之间的宽高占比锚向指示线Chains链基本属性可以让本View的一个方向置于目标View的一个方向,比如layout_constraintBottom_toBottomOf:本View的下面置于目标View的下面,与此类似的还有 layout_constraintEnd_toEndOf,layout ......
329
0
0
2023-06-09
目录ListView的默认构造函数定义默认构造函数ListView.builder ListView.separated固定高度列表ListView 原理实例:无限加载列表添加固定列表头总结ListView的默认构造函数定义ListView是最常用的可滚动组件之一,它可以沿一个方向线性排布所有子组件,并且它也支持列表项懒加载(在需要时才会创建)。我 ......
303
0
0
2023-06-09
目录早期的转场Material Design 转场动画Material Motion 动画MaterialContainerTransformShared axisFade ThroughFade总结早期的转场最初,两个Activity之间的切换的过度动画,都是用overridePendingTransition。它只支持平移、缩放、透明度、旋转四种动画效果 ......
332
0
0
2023-06-09
目录Flutter 适配组件1. MediaQuery2. LayoutBuilder3. OrientationBuilder4. Expanded 和 Flexible5. FractionallySizedBox6. AspectRatioFlutter 适配组件在 Flutter 我们只需要掌握一些 Widget 即可,实际的开发过程中,我们也只需要 ......
294
0
0
2023-06-09
目录前言死锁检测线程Block状态获取当前线程所请求的锁通过锁获取当前持有的线程线程启动nativePeer 与 native Thread tid 与java Thread tiddlsym与调用系统限制死锁检测所有代码总结前言“死锁”,这个从接触程序开发的时候就会经常听到的词,它其实也可以被称为一种“艺术”,即互斥资源访问循环的艺术,在Android中, ......
336
0
0
2023-06-09
目录依赖项创建导航图导航宿主导航到目的地传递参数NavigationUI多模块导航导航是指支持用户导航、进入和退出应用中不同内容片段的交互。Android Jetpack 的导航组件可帮助您实现导航,无论是简单的按钮点击,还是应用栏和抽屉式导航栏等更为复杂的模式,该组件均可应对。导航组件还通过遵循一套既定原则来确保一致且可预测的用户体验。依赖项 & ......
227
0
0
2023-06-09
目录前言两种使用模式Cubit模式最后前言目前Flutter三大主流状态管理框架分别是provider、flutter_bloc、getx,三大状态管理框架各有优劣,本篇文章将介绍其中的flutter_bloc框架的使用,他是bloc设计思想模式在flutter上的实现,bloc全程全称 business logic ,业务逻辑的意思,核心思想就是最大程度的 ......
349
0
0
2023-06-08
目录简介ArrayList源码讲解初始化扩容增加元素一个元素一堆元素删除元素一个元素一堆元素修改元素查询元素总结ArrayList优点ArrayList的缺点简介ArrayList是List接口的一个实现类,它是一个集合容器,我们通常会通过指定泛型来存储同一类数据,ArrayList默认容器大小为10,自身可以自动扩容,当容量不足时,扩大为原来的1.5倍,和 ......
274
0
0
2023-06-08
目录前言1. 灭屏流程2. 设备进入打盹状态2.1 更新用户行为2.2 更新显示屏的电源状态2.3 更新梦境状态3. 启动doze dream结束前言PowerManagerService之亮屏流程分析 分析了亮屏的流程,并归纳出了一个适用于亮屏或灭屏的通用的流程。 但是,灭屏流程还有一些独特的东西,例如 dream 这个晦涩的东西,就是在灭屏流程中启动的。 ......
381
0
0
2023-06-07
目录正文构造函数页面缓存KeepAliveKeepAliveWrapper总结正文如果要实现页面切换和 Tab 布局,我们可以使用 PageView 组件。需要注意,PageView 是一个非常重要的组件,因为在移动端开发中很常用,比如大多数 App 都包含 Tab 换页效果、图片轮动以及抖音上下滑页切换视频功能等等,这些都可以通过 PageView 轻松实 ......
367
0
0
2023-06-07
目录背景状态栏是什么?系统ICON布局StatusIconContainer -- onMeasureStatusIconContainer -- onLayoutStatusIconContainer -- onDraw状态栏图标显示逻辑控制关键view管理图标如何更新?如何定制?注意事项:背景项目中为了适应产品形态需要对Android系统状态栏 ......
345
0
0
2023-06-07
目录粒子运动概念如何保持持续运动 创建粒子对象创建粒子控制器初始化粒子创建画板多粒子实现八大行星加速度自由落体弹跳总结粒子运动概念粒子运动是将对象按照一定物理公式进行的自定义轨迹运动,与普通动画不同的是,它没有强制性的动画开始到结束的时间概念,因为粒子的运动开始到结束的时间并不是固定的,而是由具体场景的物理运动公式来决定的,什么时候结束由你来定,例 ......
392
0
0
2023-06-07