自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 BottomSheetDialogFragment大量踩坑-自适应高度和最大高度和滚动问题等等

BottomSheetDialogFragment有大量的坑,这里做了不少的记录。固定展开,含有EditText的处理,自定义Toast的显示父控件,无法在dismiss之前得到监听,自适应高度和限定最大高度,含有滚动内容的处理。

2024-04-24 15:42:15 189

原创 使用Barrier对齐ConstraintLayout几个控件的最高的一个

使用Barrier对齐ConstraintLayout几个控件的最高的一个。

2024-03-22 18:04:22 344

原创 android:fillViewport=“true“ 可以是NestedScrollView里面的控件充满

使用NestedScrollView的时候想要让布局撑满撑满整个屏幕,因为有一个控件需要放在屏幕底部。追加android:fillViewport="true"给nestedScrollView;关键点,嵌套一个布局wrap高度即可;然后让底部控件到底。

2024-03-22 17:18:24 365

转载 Android思源字体显示行高很大解决

安装以后,会提示你的环境C:\Users\xxx\AppData\Local\Programs\Python\Python312\Scripts。我这里安装在了C:\Users\xxx\AppData\Local\Programs\Python\。如果用别的工具,可能你需要找一个Hex工具了。搜索yMin,然后按N,应该只有一个地方。再次打开cmd,敲入ttx。百度python,安装python3.8+,目前3.12+。将你自己的目录,添加到windows的path中。直接关闭,重新vi它。

2024-03-13 20:35:18 50

原创 最新android icon和splashScreen适配兼容至2024android

android在12做了splashScreen的变动,即,android12+有自带的screenSplash过渡,不论你是否自己有变化,都会插入该动画。android8做了icon的巨大变动。13做了图标的主题兼容。

2024-03-11 17:33:03 1346 1

转载 android TextView自动换行右侧有大留白

所以,尝试使用android:breakStrategy="simple"来解决吧。

2024-03-06 10:10:07 57

原创 jsbridge2.0项目实践和踩坑记录

https://github.com/lzyzsd/JsBridge 1.0.4的版本还是挺好用的。最新的master,他并没有打包成aar公开,而且master代码已经被各种提交污染导致bug。更新的相互通知的机制。那么我基于该框架,也是为了完全兼容以前的前端H5代码,实现了jsbridge2.0。目前公司日活10w+。

2024-02-28 15:32:23 726 2

原创 Android LiveData Cannot add the same observer with different lifecycles

参考(https://blog.csdn.net/weixin_36762615/article/details/106719262?或者Activity,被回收再创建,之前的activity没有立刻finish,而新的已经onCreate。而不能通过jclasslib,或者,jadx,均不能看到这个优化。其实不论是java或者kotlin,不引用外部的函数或者变量,都会导致此问题。因此,才会导致liveData的Observer,已经绑定了。会导致这个单例被使用,而还没有来得及接触注册。

2024-02-27 18:22:46 612

原创 android键盘与布局记录

android键盘的处理布局顶起问题,一直比较棘手,通过是否是包含WebView和NestScrollView,以及adjustResize和adjustPan,或者android11版本来不同的处理方式。

2024-01-17 11:17:55 419

原创 androidStudio sync failed GradlePropertiesModel (V2)

经历了一整天的删除C:\Users\xxx.gradle, .android 和项目.idea, .gradle, 卸载重装,等等无效之后。然而,今天开机以后,无论如何,点击gradle的大象图标(Sync Project with Gradle Files),一直提示这个。这个时候,需要打开详细的日志(androidStudio中Build窗口可能会有直接点击的提示)。不负责任推测,可能是电脑重启更新后,某些目录比如这个Temp授权丢失,或者公司网管做了什么鬼更新。显然,这已经不是常规的项目配置问题了。

2024-01-04 17:17:56 847

原创 couldn‘t find “libmmkv.so“ android8.1.0 Nexus 5X

研究了很久,一方面是因为mmkv团队也已经不管这个事情,从他的issue来看,每次有人提到这个,他要么就不予理睬,给出这个并非库维护者需要干的事情,要么就说你去找google。抛开那种确实是集成库的开发者的问题之后,事实99%都能用的情况后,那么,还存在于某个机型,比如我这里也遇到的android8.1.0 Nexus 5X,也会存在找不到库的情况。相当于死马当活马医,传统的代码crash了,抓住,使用relinker的方案再行load库,大不了再crash一次。后续我会继续跟踪和复现,再行修改。

2023-12-27 16:12:46 937 3

原创 android RecyclerView1.3.2与NestedScrollingParent的变化

而且也符合我们下拉刷新的要求。因为我们不需要edge的边缘拉伸效果,而是将分发事件的多出距离用来做下拉刷新的整体布局往下拉的效果。当到了极限,则会出现边缘效果,就是有一个额外的小头部效果贴在边上。并且,RecyclerView就会出现简单的拉伸变长,以表现它无法继续滑动的现象。因此,这里多的代码,如果把dx, dy变成了0,则会进一步导致直接将原本应该分发给parent的unConsumed值给消费掉了。这篇文章,可能不懂的人将会不知所云,懂的自然懂,不懂的可能需要遇到类似问题回头来看我的帖子好了。

2023-12-26 15:33:51 541

原创 android手机莫名其妙卸载重装有残留数据

最近包括1年前,也都发现了,某一些手机(特别是,有google框架服务的)在卸载后,安装回来,会加载到类似/data/data下面的cache内容,比如database,sharedPref,mmkv等。问题的根源在于,从android6.0开始就支持一个自动备份。并且在android11,android12,均有更改。其中fullBackupContent,是配置android11以下。进行影响你配置androidManifest.xml的三个点。其中allowBackup,是老版本android必备。

2023-11-30 17:36:21 201

原创 fragment的onCreateView中设置RecyclerView adapter概率不生效

所以推测来讲,主要的原因是需要让RecyclerView走完onLayout才能确保LayoutParams能够被真实的测量和显示完成,根据onMeasure->onLayout->onDraw的顺序。而我曾经遇到过,通过LayoutInspector查看,布局已经存在,但是没有高度,即可能LayoutParams出现错误。另外,也建议使用全局的MainHandler来post,而不是调用RecyclerView自身的View的post。一般的,我们的RecyclerView是用来展示网络(后台)数据。

2023-11-01 14:39:43 151

原创 LiveData去除粘性

而我们的业务代码注册监听的函数observe(owner, observer) 或者observeForever(observer)第一,反射很少,因为mObservers在LiveData是final的全局变量,不会变化。众所周知,LiveData是粘性的。想要破除粘性,我翻阅了一些代码,写的五花八门。直到removeObserver的时候,通过mObservers.remove(observer)来移除。第二,与源代码LiveData的思想高度统一,都是通过wrap用户的observer存起来的思路。

2023-10-10 01:54:24 110

原创 android被杀以后fragments缓存重建问题和测试方法

这个问题,其实不是太好复现。因为在android的缓存Fragment机制是写在androidx的库中。

2023-09-25 16:14:28 644

原创 kotlin代码执行顺序初始化

1. 先走父类的逻辑。即先(创建父类变量&init,按照代码顺序),然后父类构造函数。2. 再走子类的逻辑。先init{} 和全局变量的初始化,然后构造函数。1. init{} 和全局变量的初始化,看谁写在前面。2. 构造函数永远最后走。

2023-09-25 11:34:33 145

原创 android Junit4编写自测用例

10多年的android开发经验,一直以来呢,也没有使用过android自带的测试代码编写。说来也惭愧。今天也花了点时间稍微研究了下。还挺简单。接下来就简单的说一下。

2023-08-24 10:01:19 607

原创 android NullPointerException externalCacheDir

android的getExternalCacheDir出现了空指针,NullPointerException的解决方案。

2023-08-22 16:41:39 541

原创 androidStudio或IDEA的通过gitBash打开插件

idea或者androidStudio的一款自己开发的插件,用来快速打开gitBash。

2023-08-21 16:52:09 530

原创 android JSBridge的加载时机问题

遇到的问题:比如:1. 从前端在加载WebView的时候,执行了某些动作,一直得不到回应,过一会儿会瞬间刷刷刷执行多次;2. 某个初始化指令,前端是调用了,但是android端需要等很久才能生效,或者不生效。上述类似的问题,可以研究下我这段分析。

2023-07-14 19:03:21 1152

原创 Android firebase google登录配置流程和app内测发布流程

googlePlay使用OAuth2.0保护账号安全,且与firebase相关。如果配置错误,会出现error code比如:10: auth,如clientId不对;7: 网络或墙的问题;12500:签名问题。

2023-06-30 18:01:21 1757 5

原创 ViewPager2自定义Adapter解决Fragment动态增加和删除,不刷新等问题

一般的,我们使用ViewPager2是不太会整体地动态更新ViewPager的Fragment或者删除。我们一般只是固定了ViewPager,然后内部的每一个独立的Fragment自行处理各种逻辑。而现在有个需求需要动态增加,删除,改变Fragment。为了达到动态更新,并且希望是尽量复用Fragment。而不是每次都notifyDataSetChange。而且即使notifyDataSetChange也不一定能生效。

2023-06-29 17:16:53 3261 3

原创 java kotlin正则表达式匹配邮箱

本代码,仅做一些简单的校验,并不会做特定场景的使用。比如并不考虑域名是大于2个字符的。名字也可以以.结尾等。

2023-05-30 11:35:43 239

原创 idea无法加载maven工程的某些module代码不识别

idea无法加载maven工程的解决办法

2023-05-26 11:47:49 969

原创 Android SpanStringBuilder ClickableSpan内存泄漏和crash的解决方案

比较java或者kotlin的lamda或者object:或者直接new XXXListener,参考我之前的帖子分析过内部类是啥情况(https://blog.csdn.net/jzlhll123/article/details/126593235)。可以使用匿名内部类,必须满足不引用外部;参考我之前的帖子结论,这样的话,不论kotlin或者java都会优化编译不会持有外部对象,进而不会持有context。能用App的单例就用。第二条:这里设置的时候也定义一个static的class来实例化对象传入。

2023-05-25 15:29:01 1309

原创 ViewStubPro android进阶版ViewStub

参考https://blog.csdn.net/blankmargin/article/details/128158459 和阅读源码ViewStub优化实现。然后调用,binding.videoStub.launch() 并强转为 XXXCustomView即可使用。添加xml styleable 申明。支持ViewStub本身的功能;ViewStub的Pro版本;保持(保持与id相同)的id。注意:暂时不支持标签。

2023-05-10 16:12:43 535

原创 android验证码输入框列表的一种实现

网上的实现也是五花八门,有的直接使用EditText,有的使用隐藏的Edit+前台可见的多个TextView,大部分界面已经由他们定死。第二步,你随意写布局,往这里传入数组形式即可。并且,代码中去判断是否是。android上经常会有验证码的输入要求。只需要使用我的manager类即可。我这里提供一种思路。界面随便你的怎么写。

2023-04-18 19:22:51 306

原创 记录一个小点recyclerView底部留白

但是整个padding,或者marginBottom又不合适,因为会有留白。只希望最后一个元素下面是留白。有的时候,整个recyclerView是全屏的,触底的或者触顶的。现在的手机又是圆角,可能底部有所遮挡。但是对于多页加载,appendData就不合适。会导致之前认为是底部,而没有刷新。刚开始想用ItemDecoration来实现。所以这种方式就适合不做添加list的方式。

2023-02-23 11:50:48 427

原创 在onBindViewHolder设置View的translation失败或错乱的问题

androidView的绘制流程,View在未完成显示之前调用一些View的操作会导致错乱。

2023-02-22 15:48:35 504

原创 Gson解析带泛型或者List的使用记录

Kotlin编写gson泛型解析

2023-02-06 21:21:49 890 1

原创 TabLayout的一种圆角背景

通过如上设置配置实现的TabLayout。

2022-12-01 13:32:29 845

原创 Kotlin object的用法和内存泄漏研究

kotlinobject的用法。并对比加java分析内部类,匿名内部类lambda的内存泄漏分析。

2022-08-29 21:48:11 1422

原创 Mac上出现多个版本选择打开edge浏览器

mac edge浏览器出现多选择版本问题

2022-08-08 23:07:29 3709 10

原创 new Socket(host, port)阻塞解决

new Socket(host, port)阻塞解决

2022-08-05 01:25:25 1500

原创 android ANR总结

android ANR总结。

2022-07-18 16:01:26 363

原创 android性能优化纲略

android性能优化的一些点记录

2022-07-14 15:52:51 508

原创 java几大算法代码与优化

列出了java,冒泡,插入,选择,归并迭代版和递归版,快速排序的代码实现。并简介了他们的优缺点和使用场景。

2022-07-12 11:16:59 356

原创 自己研发的mac端日志文本分析软件notepadmm

自己开发的多行,多匹配词,搜索的按颜色分割显示的软件

2022-07-08 17:42:37 1661 9

原创 java泛型fastjson阅读泛型解析乱谈一通

乱谈一通泛型和fastjson

2022-07-04 17:55:10 843

HDThanhua_super_v0.9.2.zip

HDThanhua_super_v0.9.2.zip

2016-08-06

空空如也

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

TA关注的人

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