自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 pgit--分支描述管理工具

背景在开发中,我们会同时开发多个需求,每个需求都会有对应的分支,当我们创建了众多分支的时候,想切换到某个需求开发分支,git branch一下,蒙了技术调研1.git提供了给分支添加描述的命令git config branch.{branch_name}.description your_description2.我们可以通过以下命令查看或编辑当前分支描述git branch --...

2020-04-05 12:47:40 1724

原创 Android富文本深度解析——第四部分

/ Span范围的可视化工具/*** 为文本中的所有Span添加背景色以便调试*/if (!i++) {// 为每个Span添加不同颜色的背景/*** 打印Span信息到日志*/if (!return;break;break;break;= 0) {= 0) {= 0) {// 测试用的自定义Span。

2025-09-30 16:01:22 280

原创 Android富文本深度解析——第三部分

6.2 聊天气泡样式6.3 代码高亮显示七、自定义Span开发7.1 设计原则在开发自定义Span时,需要遵循以下核心设计原则:每个Span应该只负责一种特定的样式效果:7.1.2 组合优于继承通过多个简单Span的组合实现复杂效果:7.1.3 性能优先原则避免复杂计算和频繁对象创建:7.2 实现模板7.2.1 基础CharacterStyle模板7.2.2 MetricAffectingSpan模板7.2.3 ReplacementSpan模板7.3 常见陷阱与解决方案

2025-09-30 15:59:38 307

原创 Android富文本深度解析——第二部分

【代码】Android富文本深度解析——第二部分。

2025-09-30 15:58:59 295

原创 Android富文本深度解析——第一部分

在现代Android应用开发中,富文本显示已经成为提升用户体验的重要手段。从微信的聊天气泡、微博的话题标签,到各种阅读应用的排版效果,都离不开Android强大的富文本系统。而这个系统的核心,就是包。

2025-09-30 15:58:21 596

原创 Android 富文本深度解析-大纲

单一职责: 每个Span只负责一种样式组合优于继承: 通过多个简单Span组合复杂效果性能优先: 避免复杂计算和频繁对象创建android.text.style包的设计哲学核心类之间的协作关系性能与功能的平衡艺术未来发展趋势预测。

2025-09-30 15:56:40 601

原创 【ViewPager2源码解读】雕龙画凤 · 飞花掠影

本节主要探索一些炫酷的转场效果。

2025-06-03 13:51:02 384

原创 【ViewPager2源码解读】庖丁解牛 · 崭露头角

** 参数key *//*** ViewPager2 Fragment 示例Fragment*//** 标签 */= null/** 标签数据 */= null/*** 创建实例*/) {: "0"): View?!/*** 设置标签*/this.label?

2025-06-03 13:38:36 344

原创 【ViewPager2源码解读】雕龙画凤 · 初露端倪

本节对ViewPager2的基本使用做简单示例。

2025-06-03 13:31:40 159

原创 【ViewPager2源码解读】庖丁解牛 · 模拟拖拽

ViewPager2提供了模拟拖拽的能力FakeDrag。

2025-06-03 13:23:03 193

原创 【ViewPager2源码解读】庖丁解牛 · 页面缓存

ViewPager2 + Fragment 为例进行观察。offscreenPageLimit:离屏显示页面数量。

2025-06-03 13:20:26 150

原创 【ViewPager2源码解读】庖丁解牛 ·页面转场

终于来到了这一章节,Transformer!转场了,第四节太太太复杂了,这里的分析也转场了!!!

2025-06-03 13:17:38 626

原创 【ViewPager2源码解读】庖丁解牛 · 滚动事件

RecyclerView 的滚动事件为:OnScrollListener,对外提供了 onScrollStateChanged 和 onScrolled 方法。

2025-06-03 13:07:01 1018

原创 【ViewPager2源码解读】庖丁解牛 · Item定位

mCurrentItem:当前Item位置关于Item定位,有以下相关方法。

2025-06-03 11:19:30 885

原创 【ViewPager2源码解读】庖丁解牛 · 再者,“RecyclerView“

为了实现滑动,使用组合模式,将滑动交给内部的RecyclerView子View。

2025-06-03 11:11:28 678

原创 【ViewPager2源码解读】庖丁解牛 ·首先,是个ViewGroup

ViewPager2 实现了 ViewGroup 抽象类,首先,从 ViewGroup 层面进行分析。

2025-06-03 11:03:22 324

原创 【ViewPager2源码解读】一览全貌 · Fragment 适配

我们使用 RecyclerView 组件时,有两个重要的抽象类要实现,分别是 RecyclerView.Adapter 和 RecyclerView.ViewHolder。这里不对 RecyclerView.Adapter 和 RecyclerView.ViewHolder 做深入解读,只说明 ViewPager2 的适配方式。

2025-05-23 17:05:25 353

原创 【ViewPager2源码解读】一览全貌 · 模拟拖拽

在实际开发场景,经常会有列表主动滑动的需求(非用户手动拖动),例如上滑引导效果。然而,代码主动滑动的情况,可能和用户的用户行为冲突,导致状态混乱。为了兼容这种情况,ViewPager2提供了专门的能力 FakeDrag,从字面含义理解,称为模拟拖拽。

2025-05-23 17:02:22 240

原创 【ViewPager2源码解读】一览全貌 · 事件管理

在第二节中,我们介绍了 ViewPager2对外定义的两个页面事件:滑动事件和转场事件。第三节我们介绍下两个事件的管理器。

2025-05-23 16:54:38 238

原创 【ViewPager2源码解读】一览全貌 ·页面事件

onPageScrollStateChanged:页面滚动状态改变回调,其状态枚举值同 RecyclerView.OnScrollListener 的状态值,但注意:ViewPager2内部重新定义了常量。由于 ViewPager 没有对外直接暴露 RecyclerView 的滑动事件回调,而是自己定义了一套滑动事件,因此,ViewPager 内部对 RecyclerView 的滑动进行了封装转换。onScrollStateChanged:滚动状态改变回调。onPageScrolled:页面滚动回调。

2025-05-23 16:49:55 559

原创 【ViewPager2源码解读】一览全貌 · 代码结构

按照包名结构,分为两部分:

2025-05-23 16:44:04 189

原创 ANR问题分析与定位

Application Not Responding,字面意思就是应用无响应,稍加解释就是用户的一些操作无法从应用中获取反馈。在实际的应用中应当去避免这种现象,虽然他暂时不会造成应用崩溃,但是却极大的损坏了用户体验。

2025-05-23 16:26:43 301

原创 runCatching:我的世界不要异常

在Kotlin中,是一个扩展函数,它提供了一种函数式的处理异常的方法。在编程语言的世界里,异常分为:受检异常和非受检异常受检异常(Checked Exceptions):强迫调用者处理异常,增加了代码的健壮性,但同时也增加了代码的复杂性。非受检异常(Unchecked Exceptions):提供了更多的灵活性,减少了代码冗余,但也可能导致潜在的错误未被及时处理。另外 :函数式编程,是 Kotlin 语言所追求的一大特色。

2025-05-23 16:04:07 419

原创 密封类:百密无一疏

Kotlin中的密封类通过sealed关键字来定义。密封类是抽象的,不能直接实例化,只能通过其子类来实例化。

2025-05-23 15:58:47 191

原创 中缀函数:说话的方式简单点

在Kotlin中,中缀函数(Infix Function)是一种特殊类型的函数,它允许你在调用时不使用圆括号和点号,而是使用一个中缀符号来表示函数调用。这样可以使代码更加易读和表达性更强。中缀函数通常用于操作符重载或是使得函数调用看起来更像是自然语言。A func B。

2025-05-23 15:45:06 307

原创 小小一颗糖,代码不慌忙:let、apply、run、with、also、takeIf、takeUnless

我们需要重复编写 “person."单词,利用语法糖,可以让我们传递上下文,解决编写重复代码的烦恼。

2025-05-23 15:37:47 409

原创 注解:“进击“的枚举

annotation。

2025-05-23 14:52:16 379

原创 Android Handler消息机制详解

Android应用程序是通过消息驱动实现的,因此,Handler机制对于Android应用程序的运行极其重要。本文详细的介绍了Handler、Looper、MessageQueue、Message、ThreadLocal,内容较长,可以分部分进行学习。文章未详尽之处,欢迎交流,描述有误之处,欢迎指正。点关注,不迷路;点收藏,你更强;点点赞,我心欢。

2025-02-28 00:05:07 1139

原创 【Android】记一次Ninja引发的血案

【Android】记一次Ninja引发的血案报错日志报错原因解决引导解决方案完整报错log新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchar...

2019-08-07 20:25:17 2973

原创 二探安卓module

前言上一篇文章 初探安卓module 中我们探讨了如何创建一个简单的module,如何由主app界面跳转到module界面,本篇文章我们来探讨一下如何从module界面跳转到主app界面。1. module界面添加button<Button android:layout_width="wrap_content" android:layou...

2019-02-10 14:08:33 343

原创 初探安卓module

前言最近趁着年假,想学习一下组件化,本人菜鸟一枚哈,本文主要也是写给我这样的小白,希望有所帮助,大神请多多批评指正1.创建app工程打开android studio–>file–>new project,一直next,最后finish2.添加Button我们在activity中添加一个button用于按下后跳转到module的activityactivity_main.xm...

2019-02-04 17:20:36 2101

原创 git基础操作修炼手册

git基础操作修炼手册来了老弟前世今生git空间git常用命令git cherry-pickgit mergegit merge --ff/--no-ffgit rebasegit rebase -i来了老弟实习之前确实没有接触过git工具,一边实习一边学习,确实跳进过不少的坑,git工具教科书式的教程是在是太多了,我主要是根据自己的学习过程,跟大家分享一下,着重点在于实际操作,十天学会单片机...

2019-02-03 11:07:31 583

81cc01969a9cd6d4b4c6564a714b15cc.mp3

81cc01969a9cd6d4b4c6564a714b15cc.mp3

2024-05-15

pgit--清晰的管理git分支

在开发中,我们会同时开发多个需求,每个需求都会有对应的分支,当我们创建了众多分支的时候,分支用途难以区分 pgit工具用于给给分支添加描述和查看分支描述

2020-04-01

pgit--分支描述管理工具

在开发中,我们会同时开发多个需求,每个需求都会有对应的分支,当我们创建了众多分支的时候,分支用途难以区分 pgit工具为分支描述工具,基于git开发,用于mac系统,给分支添加描述和查看分支描述等

2020-04-05

空空如也

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

TA关注的人

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