自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 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 9284 11

原创 Kotlin 协程中,关于 runBlocking, launch ,withContext ,async,doAsync 之间的简单区别

引入扔物线大佬的话,kotlin的协程,本质上是一个线程框架,它可以方便的切换线程的上下文(如主线程切换到子线程/子线程切回主线程)

2020-03-30 17:10:04 15840 8

原创 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 3122

原创 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 3994

原创 使用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 7435

原创 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 2921

原创 openCV4+vs2019环境搭建

1. openCV官网(https://opencv.org/releases/) 下载 windows版openCV4安装包,我这里下载的是openCV4.4.0,安装到电脑 。这里我安装到D:\openCV ,安装完成后进入安装目录,看到 D:\openCV\opencv\build\x64 有 vc14和vc15两个文件夹。 vs2019使用的是vc15这个目录的东西。2. 配置环境变量右键 计算机-属性-高级系统设置-环境变量,将 openCV安装目录下\op...

2020-08-05 12:19:35 3977 3

原创 记录Android jetpack MVVM使用DataBinding 表达式多条件判断&&检查验证EditText表单数据

在使用MVVM模式来开发应用时,我们在布局文件中有可能使用到DataBinding 。例如在登录界面里,我们通常都是要检验输入的用户名和密码不能为空才可以进行登录。在这种场景下,可以直接可以在布局文件中使用Databinding直接对Edittext的数据进行检查,若其中有一个信息为空,则登录按钮禁用,就可以省去在Activity写很多的检查代码。1. 如何获取所有Edittext 输入的文本信息 EditText通过双向数据绑定 @={} ,把用户输入的信息分别存放到两个临时...

2020-08-04 17:32:01 6924

原创 站在初学者的角度看图理解Android事件分发机制流程

关于Android事件分发机制的文章已经烂大街了,但很多都并不是站在初学者角度分析,要想快速了解Android事件分发机制,我们应该从以下这几方面先开始了解。1.什么是事件分发?这里谈下我个人的通俗理解: 就是我们的Activity、ViewGroup、View 都重写了 onTouchEvent(MotionEvent event) 这个方法后,用户触摸屏幕后它们的onTouchEvent是否能够接收到event事件的过程2. 什么时候会用到事件分发?当发生了点击事件或...

2020-07-22 16:25:33 245

原创 Android Handler机制,如何学习阅读Handler源码,最简单的方式一步一步开始了解其原理

相信关于解释Handler的运行机制和源码分析的文章有很多,但可能大部分文章虽然写得不错,但如果对于新手想了解Handler的人群, 来说就算看了也很难理解。 自己以前曾很多次尝试阅读Handler的源码,但发现读着读着就越来越绕的感觉,觉得很大原因就在于阅读源码的顺序不对,在这里记录下如何学习阅读Handler源码。 阅读源码前,首先要知道Handler的使用方式 相信大家都知道Handler是用于线程间消息通信的,使用方法也比较简单,主线程声明一个Handler,重写其hand...

2020-06-30 17:20:50 357

原创 Kotlin自定义控件EditableTextView , 实现Edittext点击切换可编辑和不可编辑的预览效果

最近项目要求需要实现一个常见的功能,就是点击Edittext 的编辑图标则为可输入状态,再点击图标切换为类似TextView的样式。这个看上去实现是比较简单,原本打算找个代码Copy一下,但发现找了半天都没找到满意的,所以还是自己实现一下做个笔记。先看个Gif效果图:效果看上去也就比较简单,Edittext 内部右边有个小图标,点击一次则为编辑状态,再点击一次变为不可编辑状态。之前只要是自定义控件都是Java来写,现在刚好项目用的是Kotlin ,这次就改用Kotlin 练习一下。下面就来看一.

2020-06-19 18:00:02 1952

原创 Kotlin 使用空判断?.与?: 同时处理空与非空时逻辑

最近使用kotlin重构项目,遇到了一个小问题!在Java中,可能会遇到判断某个对象是否为空,为空执行一段逻辑,不为空执行另外一段逻辑。查了下很多博客好像都是只对不为空处理做讲解,没有同时把为空处理的方法写出来Java 代码如下:if (person!=null) { num ++; System.out.println("have person"); ... ...

2019-07-05 11:14:13 14189 1

原创 Android Studio或Idea生成自定义模版代码提示和补全的最简单配置方法

        最近练习kotlin的时候,发现与java不同,java定一个变量是String a, 但kotlin要写var a:String 这么长,哈哈我比较懒要每次都要输入“:”和大写觉得好麻烦,因此想到定义一个简单的字符串来生成对应的模版。翻了翻很多文章,发现写的都是长篇大论的,我一个新手不是很懂,我只需要简单功能就好,因此自己摸索下实现了功能,顺便分享一下!下面我用idea作为例子演...

2018-04-02 10:10:42 1622

viewpager2TabFragmentDemo.zip

Android中使用双层ViewPager2+Fragment+TabLayout 实现顶部Tab和底部菜单Fragment联动切换Demo 源码

2020-11-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除