Android
文章平均质量分 53
zhong_zihao
这个作者很懒,什么都没留下…
展开
-
Android Studio build.gradle的gradle源码ctrl+鼠标左键点击不了,Cannot find declaration to go to问题
Android Studio build.gradle的gradle源码ctrl+鼠标左键点击不了,Cannot find declaration to go to问题原创 2021-12-04 21:47:18 · 3289 阅读 · 0 评论 -
AndroidStudio gradle配置新版阿里云maven镜像,解决java.net.UnknownHostException: dl.google.com 问题
由于老项目之前也配置过阿里云镜像,最近发现依赖下得特别慢甚至下载失败报错:Failed to download any source lists! IO exception while downloading manifest: java.net.UnknownHostException: dl.google.com发现现在新的阿里云maven变了,更换为最新的阿里云镜像则解决, 记录一下://新版阿里云镜像maven {url 'https://maven.aliyun.com/repos原创 2021-11-11 18:07:04 · 4851 阅读 · 0 评论 -
使用Kotlin推断泛型的具体类型,以及 reified 关键字的使用
Kotlin的泛型与Java不同的是,Kotlin可以做到判断泛型类型的功能,那就非常的有用了。假如需要写一个打印泛型参数具体类型的方法,我相信大部分觉得第一反应是这样写:写完才发现它居然报错: Cannot use 'T' as reified type parameter. Use a class instead 意思大概就是泛型推断不了具体类型吧。Kotlin提供了reified 关键字,它就是提供泛型类型推断的功能的。它一般都要和inline结合一齐使用。上面...原创 2020-09-04 17:03:49 · 8142 阅读 · 0 评论 -
Kotlin中 takeIf 和 takeUnless 的一种使用场景
首先先来看看takeIf 和 takeUnless 的实现://takeIfpublic inline fun <T> T.takeIf(predicate: (T) -> Boolean): T? { ... return if (predicate(this)) this else null}//takeUnlesspublic inline fun <T> T.takeUnless(predicate: (T) -> Boolean...原创 2020-08-20 10:04:13 · 3447 阅读 · 0 评论 -
记录Android jetpack MVVM使用DataBinding 表达式多条件判断&&检查验证EditText表单数据
在使用MVVM模式来开发应用时,我们在布局文件中有可能使用到DataBinding 。例如在登录界面里,我们通常都是要检验输入的用户名和密码不能为空才可以进行登录。在这种场景下,可以直接可以在布局文件中使用Databinding直接对Edittext的数据进行检查,若其中有一个信息为空,则登录按钮禁用,就可以省去在Activity写很多的检查代码。1. 如何获取所有Edittext 输入的文本信息 EditText通过双向数据绑定 @={} ,把用户输入的信息分别存放到两个临时...原创 2020-08-04 17:32:01 · 7488 阅读 · 0 评论 -
站在初学者的角度看图理解Android事件分发机制流程
关于Android事件分发机制的文章已经烂大街了,但很多都并不是站在初学者角度分析,要想快速了解Android事件分发机制,我们应该从以下这几方面先开始了解。1.什么是事件分发?这里谈下我个人的通俗理解: 就是我们的Activity、ViewGroup、View 都重写了 onTouchEvent(MotionEvent event) 这个方法后,用户触摸屏幕后它们的onTouchEvent是否能够接收到event事件的过程2. 什么时候会用到事件分发?当发生了点击事件或...原创 2020-07-22 16:25:33 · 292 阅读 · 0 评论 -
Android Handler机制,如何学习阅读Handler源码,最简单的方式一步一步开始了解其原理
相信关于解释Handler的运行机制和源码分析的文章有很多,但可能大部分文章虽然写得不错,但如果对于新手想了解Handler的人群, 来说就算看了也很难理解。 自己以前曾很多次尝试阅读Handler的源码,但发现读着读着就越来越绕的感觉,觉得很大原因就在于阅读源码的顺序不对,在这里记录下如何学习阅读Handler源码。 阅读源码前,首先要知道Handler的使用方式 相信大家都知道Handler是用于线程间消息通信的,使用方法也比较简单,主线程声明一个Handler,重写其hand...原创 2020-06-30 17:20:50 · 399 阅读 · 0 评论 -
Kotlin自定义控件EditableTextView , 实现Edittext点击切换可编辑和不可编辑的预览效果
最近项目要求需要实现一个常见的功能,就是点击Edittext 的编辑图标则为可输入状态,再点击图标切换为类似TextView的样式。这个看上去实现是比较简单,原本打算找个代码Copy一下,但发现找了半天都没找到满意的,所以还是自己实现一下做个笔记。先看个Gif效果图:效果看上去也就比较简单,Edittext 内部右边有个小图标,点击一次则为编辑状态,再点击一次变为不可编辑状态。之前只要是自定义控件都是Java来写,现在刚好项目用的是Kotlin ,这次就改用Kotlin 练习一下。下面就来看一.原创 2020-06-19 18:00:02 · 2136 阅读 · 0 评论 -
Android中使用双层ViewPager2+Fragment+TabLayout 实现顶部Tab和底部菜单Fragment联动切换
本Demo是使用Kotlin编写,什么都不多说,先来看个效果图Gif :类似这样结构的App也有很多。可以看到demo中,底部菜单包含4个按钮分别对应着4个不同fragment 。其中前2个底部菜单按钮fragment 也分别包含他们自己的Tab选项卡,当Tab选项卡滑动到最后一个时,自动切换为下一个底部菜单fragment ,与此同时内部的 Banner 和 RecyclerView ...原创 2020-04-06 11:32:20 · 9750 阅读 · 11 评论 -
Kotlin 协程中,关于 runBlocking, launch ,withContext ,async,doAsync 之间的简单区别
引入扔物线大佬的话,kotlin的协程,本质上是一个线程框架,它可以方便的切换线程的上下文(如主线程切换到子线程/子线程切回主线程)原创 2020-03-30 17:10:04 · 17339 阅读 · 8 评论 -
Kotlin 使用空判断?.与?: 同时处理空与非空时逻辑
最近使用kotlin重构项目,遇到了一个小问题!在Java中,可能会遇到判断某个对象是否为空,为空执行一段逻辑,不为空执行另外一段逻辑。查了下很多博客好像都是只对不为空处理做讲解,没有同时把为空处理的方法写出来Java 代码如下:if (person!=null) { num ++; System.out.println("have person"); ... ...原创 2019-07-05 11:14:13 · 15369 阅读 · 1 评论 -
Android Studio或Idea生成自定义模版代码提示和补全的最简单配置方法
最近练习kotlin的时候,发现与java不同,java定一个变量是String a, 但kotlin要写var a:String 这么长,哈哈我比较懒要每次都要输入“:”和大写觉得好麻烦,因此想到定义一个简单的字符串来生成对应的模版。翻了翻很多文章,发现写的都是长篇大论的,我一个新手不是很懂,我只需要简单功能就好,因此自己摸索下实现了功能,顺便分享一下!下面我用idea作为例子演...原创 2018-04-02 10:10:42 · 1717 阅读 · 0 评论