暂时未有相关云产品技术能力~
Android领域4年开发经验,CSDN平台优质作者,就职于TeatBird Android开发岗,参与过日活500万的优质大型项目开发,也单独负责过10余个项目的架构搭建和开发,擅长于Android应用层开发,性能优化等等
运行异常:java.lang.UnsupportedOperationException List.remove/add方法报错
需求:因为需要做到应用锁功能,所以需要对前台展示的App进行判断锁屏,所以当应用锁的后台服务挂起时,需要对栈顶的应用包名进行判断。 这里做一个总结
项目的需求中,又一个4位数的验证码界面,小弟才疏学浅,只想到了用线性布局里面放四个EditText。 需求需要输入内容后,自动跳到下一个位置聚焦,删除指定位置后,自动跳到上一个位置聚焦,由于聚焦/非聚焦UI展示得都不同,所以每个editText都会频繁的设置焦点变化。 之前因为是调用的系统键盘,所以,editText和键盘绑定后处理起来非常方便,但是,我们需要自定义一个展示在UI上的数字键盘,于是就有些bug。 bug不难,但是有点杂乱,下面是我的一点解决办法,总结一下,以后也记得更清楚!
Android EditText输入框不聚焦,点击跳转
画界面时会遇到很多界面上的布局,虽然很简单,但是每次做起来不熟练,总结一下一些日常的
RunningAppProcessInfo.IMPORTANCE_FOREGROUND,或者RunningTask来判断过, 但是遇到过偶然失灵或者无法适配现在的android版本。毕竟太老了,现在用点进去经常会有@Deprecated注解,表示废弃了。
今天在做项目时,遇到个bug,需求是app在特定的时候把广告缓存下来,合适的位置在展示,于是想的用hashmap列表存起来,key为位置的广告类型,value为广告对象。为了保证每个位置同时缓存的对象只有一个,于是在存储(add方法)前会将列表遍历一遍,如果有就remove掉。但是请求广告有时候并不在一个线程,于是今天在运行时,App闪退了。
在接入原生广告时,比如在splash 请求一个原生广告,然后缓存起来,跳转带首页展示一个原生广告,结果遇到了广告展示不完全的问题(有文案,title,appIcon,点击按钮,如果不缓存直接请求展示则没有问题),可以进行点击跳转,但是却没有广告大图,改了好一会儿,终于解决了这个问题。
今天在写代码的时候,需要对String进行一些操作,例如变小写,去除所有空格 于是熟练的使用String的replaceAll,却发现没这个方法。 后面才发现Kotlin使用的是自己的String,有自己的方法,用String的replace(" ","")方法也可以替换里面所有的空格。 既然用到了,就寻思总结一下,这儿主要Kotlin的String方法,和Java的其实大差不差。
使用Lottie动画的时候,运行发现了此报错,版本为2.4.0,在经过几番的测试后,更改了资源文件和xml里面的配置也不大行。
补间动画:属于Android中View动画的一种,就是涵盖了 平移、缩放、旋转 和 透明度四种变化的动画。实现方式有两种:xml文件 和 java代码。 四种补间动画分别为RotateAnimation、ScaleAnimation、TranslateAnimation、AlphaAnimation,他们的父类为Animation。
在Android开发时,为了实现一些动态的炫酷的效果,我们常用到帧动画,View动画(补间动画)和属性动画,今天就来总结下我在使用帧动画的实现方式。
底部导航栏在Android应用中随处可见,今天使用ViewPager+RadioGroup+Fragment这三个控件来实现此功能。前面写了有三种实现方式,有兴趣可以去看看
底部导航栏在Android应用中随处可见,今天使用ViewPager+TabLayout+Fragment这三个控件来实现此功能。 前面使用了另外两个方法来实现导航栏,不过我还是更喜欢Viewpager,代码也少,毕竟前两个不能左右滑动。
上一片文章用的是BottomNavigationView+Menu+Fragment,但是可能有时候需求不一样,menu的样式不太够,所以需要自定义View来实现。
JVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机主要由字节码指令集、寄存器、栈、垃圾回收堆和存储方法域等构成。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。
最近做到了登录注册模块的各种输入判定,监听等等,因为需求上的需要,还是搞了好一会儿,今天在这总结一下。 常规的输入框输入需求有纯数字,字母,混合输入,邮箱,键盘默认打开数字键盘,密码可见性,键盘的收起弹出等等。
Android 发送邮件(简单很快啊)
用场景:在数据请求或者一些加载的页面中,总需要一些过度的动画效果,很多时候我们都可以在图片中间加一个loading的旋转图片,以前也做过,今天做的时候噼里啪啦敲了半天结果运行没效果,所以今天总结下这个啷个做的。
造成原因:在使用Android Studio中Git的Commit Directory 将本地更改的代码保存到本地后,点击commit,发现提交不上去,发现本地有代码,这时候拉取代码,报错:cannot pull with rebase: Your index contains uncommitted changes.表示我的索引有未提交的改变
如今Android系统的App,很多时候为了有更好的用户体验,都会有各种好看的UI,动画,点击效果等等,其中圆弧的控件在App中很常见,今儿就自己总结下自己实现圆弧的两种基础的方法。即Shape方法和使用View里面的方法自己画。
由于项目底层是Unity,在上层切换Activity时,下面的unity界面会暂停,界面不能刷新,会有很多问题,于是我们就想到了Activity App,那么就想到了使用JetPack的Navigation来统一管理Fragment之间的跳转。
Bug:由于项目使用的是单Activity,由navigation进行跳转逻辑,所以,会使用到大量的fragment,由A跳转到B,在B页面进行键盘的收起展开后,点击页面的部分位置会点击到下层的控件,这样肯定是不行的,百度了也没啥结果,于是参考了大佬的其他页面的布局属性。于是便发现了android:clickable这个属性。
今天解析后端数据时,发现了这个报错:Expected BEGIN_OBJECT but was STRING at 看来是自己哪儿解析错误了。 因为数据的特殊性,后端返回的Json串里面可能还会有Json数据,可能嵌套了三次层,
现在常用的App主页都会有一个底部导航栏,根据需求也使用过好几种方法进行实现,于是想着还是总结一下,今天还写一个简单的BottomNavigationView方法来实现这个功能
在App的开发过程中,常常会用的RecycleView,毕竟他可以横着来,竖着来,嵌套着来,而每个列表,我们通常都会写一个相对应的适配器(Adapter),里面包含了初始化,赋值,一些数据的监听,一些动作的监听等等。
最近的新项目里老是会用到tablayout,便想着自己也总结下,加深印象,于是他来啦!
在Android App的实际开发中,时常会需要监听软键盘的输入事件。 所以个人在此进行一个总结。 例如:微信和QQ聊天的消息发送,你会发现他的聊天框并没有发送的控件,软键盘的换行或者某个按钮会变成发送;在某些浏览器的输入框,输入内容后,软件盘的某个按钮会有搜索的字样,还有填写内容时的完成按钮等等,这些都可以通过监听键盘和输入框的一些配置实现这些功能。
在Android界面开发时,为了布局更加合理好看,很多时候会用上Padding和Margin, padding和margin是什么呢?即内边距和外边距; 某个View指定为padding是针对该View里面的子View距离该View距离而言的,或者是里面的内容距离容器的距离。
Gradle 是一个开源构建自动化工具,其设计足够灵活,可以构建几乎任何类型的软件。
The application could not be installed: INSTALL_FAILED_TEST_ONLY. Android App包安装失败(Bug记录)
公司项目多,有些事java,有些是kotlin,有些是Android,有些是AndroidX,一些依赖和依赖库的更新使得调用的方法等不同,导致功能同步时效率及极其低下,于是打算把Android项目转成AndroidX。
在写实体类的时候,对每一个字段的get和set方法一个一个敲那是相当难受啊! 那这边如何快速的set,get或者生成构造函数,生成toString方法。
在做项目时,无论为了功能还是调试,很多时候都需要获取到当前类的类名,包名,路径等等。 在这里总结一下,以便总结和以后需要的时候更快的解决问题。
kotlin 委托 委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。
Android基础--kotlin(十)Kotlin 枚举类
Android基础--kotlin(八)Kotlin 扩展数据类与密封类
Android基础 --kotlin(七)
Android基础--Kotlin(二)
HTTP状态码表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常或者是出现的错误,能够根据返回的状态码判断请求是否得到正确的处理很重要。
Git下载地址、配置及工作流程(一)
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState(已解决)
Multiple substitutions specified in non-positional format; did you mean to add BUG(7)
Android控件 TextView属性大全
Android oppo手机显示安装包异常(Bug6)
Timeout waiting to lock daemon addresses registry. Android Build失败(Bug5)
a.gray.PiggyGoldcoin.a病毒(已解决)
在用户使用 应用的时候,经常会出现点击过快且多次点击同一控件的情况, 一方面这是因为应用或手机当前有些卡顿,网络卡啥的 另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮响应方式(例如点击按钮时按钮放大,常见于游戏),导致用户误认为没有点击到当前按钮。(比如使用selector再点击后更换背景颜色,图片等等)
Android shape的用法详解
ADB命令查看应用包名