源码解析
文章平均质量分 88
小久久601
这个作者很懒,什么都没留下…
展开
-
深入理解Kotlin协程
异步调用是否发生,取决于resume函数与对应的挂起函数的调用是否在相同的调用栈上,切换函数调用栈的方法可以是切换到其他线程上执行,也可以是不切换线程但在当前函数返回之后的某一个时刻再执行。test方法一调用直接return返回了,没有发生挂起操作,test2方法使用suspendCoroutine获取当前所在协程的Continuation的实例作为参数将挂起函数当成异步函数来处理,然后开启了一个thread执行resume操作,因此无法同步执行,会进入挂起状态,直到结果返回。原创 2022-09-28 13:57:02 · 1091 阅读 · 1 评论 -
EditText在ScrollView中获取焦点自动滚动问题
问题:在实际开发中会遇到表单页面,表单中有很多选项,包括EditText等,这样会导致一屏显示不下,我们通常都会添加一个ScrollView使其页面可以上下滑动。 <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent"原创 2020-09-03 16:27:17 · 1599 阅读 · 2 评论 -
自定义ViewGroup中child绘制顺序
背景在项目中需要显示一组用户头像(见下图),右边的图片有一部分在左边的图片下面,依次叠加。我们可以使用LinearLayout,然后每个图片向左偏移-xdp,但是这样做你会发现实现的效果并不是这样,而是右边的头像在左边的头像上面。这是因为ViewGroup绘制子view的顺序导致的,先添加的view先绘制,我们可不可以改变ViewGroup的绘制顺序呢,当然可以,在View中有一个方法setTranslationZ(float translationZ),translationZ值越大优先级就越低原创 2020-08-22 10:37:02 · 606 阅读 · 0 评论 -
IdleHandler原理及应用
一原创 2019-12-03 11:47:18 · 2385 阅读 · 0 评论 -
RxPermissions原理解析
为什么需要申请动态权限android在6.0之前申请权限是在manifest中配置的,但在6.0版本了保护用户隐私引入了一种新的权限模式,这种模式权限分为两种:非敏感权限:这种权限是不需要动态申请,只需要在manifest中配置,和6.0之前请求权限是一样的。敏感权限:在用户需要使用一些敏感权限需要向系统动态申请,这种权限是分组的,一组权限只要申请了其中的一个,同组的其他权限也就被申...原创 2019-06-23 17:34:54 · 976 阅读 · 0 评论 -
Jetpack系列组件之ViewModel
Jetpack简介在2018年Google I/O大会发布了一系列辅助android开发者的实用工具,统称Jetpack,Jetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。ViewModel这篇文章主要讲ViewModel的使用及原理。ViewModel主要用来管理...原创 2019-07-28 13:21:00 · 1073 阅读 · 0 评论 -
Fragment.startActivityForResult不回调onActivityResult
问题前段时间在开发中遇到一个问题,在Fragment中启动一个Activity并返回数据,但是结果并没有回调onActivityResult方法,代码很简单应该没什么问题呀。在网上查资料,都是说是因为调用activity.startActivityForResult造成的,应该fragment.startActivityForResult,试了下发现确实可以解决问题,但是原理是什么呢?原理我...原创 2019-08-10 15:57:15 · 1366 阅读 · 0 评论