- 博客(370)
- 资源 (10)
- 收藏
- 关注
原创 TabLayout的Indicator自定义宽度
方法一设置Indicator的宽度<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android"> <item android:width="10dp" android:hei.
2020-05-19 14:43:14 1937 1
原创 BottomSheetDialogFragment中EditText问题
最近在做一个评论弹框的时候遇到两个问题:1.BottomSheetDialogFragment中的EditText有行数显示,当内容过多后,滑动内容和BottomSheetDialogFragment的上下拖动事件冲突了。解决办法:禁止BottomSheetDialogFragment的上下拖动功能设置回掉监听:override var mBottomSheetBehaviorCallback: BottomSheetBehavior.BottomSheetCallback? = object
2020-05-13 09:22:34 1559 2
原创 RecyclerView拖动动画
最近有个需求,当横向RecyclerView滑动到底部,不能滑动后,此时在拖动RecyclerView,需要显示底部一个动画效果,如图:然后很自然的去自定义RecyclerView。最后发现在拖动RecyclerView时,需要拖动一段距离后才能显示我的自定义布局,感觉半天拖动不出来底部布局,很卡点样子。而这个起始的拖动距离差一直是25,而我打印了系统最小滚动距离ViewConfigu...
2020-05-05 11:33:12 604 2
原创 解决CoordinatorLayout中RecyclerView抖动问题
待写相关链接:https://www.jianshu.com/p/b987fad8fcb4?tdsourcetag=s_pcqq_aiomsg
2020-04-03 16:38:27 2709 4
原创 自定drawable
自定drawable的时候,可能会遇到各种奇葩的需求,但是我们可以通过自定义一个selector.xml文件来实现。比如:自定义<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <it...
2020-03-19 20:47:08 139
原创 判断NavigationBar是否显示,获取屏幕高度
1.判断NavigationBar是否显示首先看几组数据vivo-X21A: screenRealSize : 2280 , screenHeight : 2201, statusBar : 84, navigationBar : 126(Android9导航栏一键)vivo-X21A: screenRealSize : 2280 , screenHeigh...
2020-03-04 13:44:44 675 2
转载 沉浸式布局下,EditText被输入法挡住问题
项目中遇到的一个问题,解放方法:https://blog.csdn.net/qq_34161388/article/details/89101442,感觉博主的实践。
2020-03-03 14:19:41 324
原创 srcrollview嵌套webview实现流畅滚动
试了很多方法,也找了很多方法,最后无意中发现一个大哥说这样可以:android:fillViewport="true"奈何不小心把界面关了,真的要给他点赞。
2019-12-24 15:37:55 196
原创 charles手机网络抓包
1.开发环境电脑:MacIDE: Android Studio硬件:Android手机2.查看charles本地IP点击help->Local IP Address:就会出现IP界面:3.查看charles端口号默认是:88884.设置手机代理确保手机和电脑在一个内网,也就是连接的同一个Wi-Fi。4.1 长按已经连接的Wi-Fi,...
2019-12-13 10:30:50 416
原创 Android Studio推荐使用的插件
1.Gson强大的json实体类生成器,快捷键alt+insert,弹出选择框。2. TranslationPlugin强大的英文翻译工具:https://github.com/YiiGuxing/TranslationPlugin操作说明: Show Translation Dialog... 打开翻译对话框。默认显示在工具栏上。默认快捷键: Windows ...
2019-12-13 10:04:58 151
原创 EventBus你真的会用吗?
EventBus是我们在跨线程中,使用较多的一个开源通信组件了。那么你真的知道怎么使用EventBus吗?如果使用过EventBus几年,并了解过EventBus源码的同学就会知道,EventBus在register注册时,起初只是使用反射来查找以onEvnet开头的方法来处理消息,也就是onEventxXXX就是我们订阅类的消息处理方法。我们都知道反射是有一定的性能损耗的。所以,后来Ev...
2019-11-18 23:08:04 227
原创 EventBus使用和源码详解
目录1. 架构图2. 使用3. 源码解析3.1 @Subscribe注解3.1.1 threadMode: 配置消息接收是在哪个线程3.1.2 sticky : 粘性事件3.1.3 priority : 接收事件的优先级3.2 注解解析3.2.1 注解类上的元注解3.2.2 collectSubscribers收集订阅类和订阅的方法信息3.2.3 生...
2019-11-16 16:20:40 567
原创 android Message机制详解
最近被问到Message池最多有多少个?瞬间懵逼了。是该好好来了解下Message机制了。Message源码就不贴了,自己点开看下就好。一般滴,我们是这么用的:Message msg = Message.obtain();msg.what = MSG_SHOP;msg.obj = bean;handler.sendMessage(msg);为啥这么用呢?人...
2019-11-10 21:47:10 605
原创 react-native开发环境踩坑
硬件开发环境:Mac电脑1.按照react-native中文文档进行安装https://reactnative.cn/docs/getting-started/2.iso报错2.1运行react-native run-ios报错Error: Could not find iPhone X simulator由于没有找到iPhone X模拟器,不清除为啥XCode并没有自带...
2019-10-06 19:36:57 336
转载 SQLiteCantOpenDatabaseException: unable to open database file code 14
转载自:https://www.jianshu.com/p/6ad0491404da
2019-07-12 17:54:21 1187
原创 自定义SeekBar
实现的目标:1.自定义SeekBar背景android:progressDrawable="@drawable/seekbar_bg"<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android">...
2019-07-11 15:05:04 2595
原创 DeepLink功能
可由第三方应用唤醒,也可以由网页唤醒,也可以通过adb命令直接测试唤醒。1.网页唤起用例:<!DOCTYPE html><head> <meta charset="UTF-8" /> <meta id="viewport" name="viewport" content="width=device-width,initial-s...
2019-06-19 09:15:12 3110
原创 textview折叠和显示多行
先上需求图:网上见的跟多的是把向下图标换成“更多”字样,然后都可以点击。而我这个是点击展开后不需要显示收缩按钮,其实要做还是可以的。我主要是通过布局来实现的,属于取巧。布局代码:用相对布局包裹内容和图标<RelativeLayout android:id="@+id/booke_detail_resume_layout" ...
2019-04-19 15:00:38 1001
原创 android第三方库混淆——一行代码搞定
你还在辛苦的位一个个第三方库配置混淆代码吗?你还在github上找第三方库的混淆代码吗?你还在百度第三方库的混淆代码吗?下面来告诉你,一行代码就可以搞定了!#除了自己项目目录,其他都不混淆-keep class !com.exmaple.demo.** {*;}...
2019-03-13 15:10:16 1100 2
原创 java.lang.NoClassDefFoundError: Failed resolution of: Lokio/Buffer
最近在使用OkHttp3的时候碰到了下面这个报错:java.lang.NoClassDefFoundError: Failed resolution of: Lokio/Buffer我本来是这样导入的:implementation 'com.squareup.okhttp3:okhttp:3.11.0'一点毛病都没有。可是不方便同事集成我的aar,所以我得换成jar包来集成okh...
2019-03-12 08:28:09 21211 1
原创 java静态类,块语句相关执行顺序
面试中碰到的一个面试题,其实我还记得我在《Java编程思想》中也看到过,可能当时还是理解的不够透彻,所以还是没有做对。A类:public class A { { System.out.print("A"); } static { System.out.print("B"); } A() { Sys...
2019-03-10 23:03:27 250
原创 webview 8.0系统不显示问题
今天被WebView坑了一把。在5.0系统上显示网页一点问题都没有,而在8.0系统无法显示网页,百度了一下才发现,原来是系统版本问题。/*** Android8.0以下的需要返回true 并且需要loadUrl;8.0之后效果相反*/@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String...
2019-03-08 18:38:38 1057 2
原创 监听APK安装广播
在开发中,我们经常会需要监听应用的安装、卸载或替换,但是经常又会遗忘某些关键点。1. 配置权限<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>2. 注册广播private void initReceiver() { IntentFilter in...
2019-03-08 17:57:17 2112 1
原创 Tinker1.9.9 gradle接入指南
前言Tinker是什么Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。它主要包括以下几个部分:gradle编译插件:tinker-patch-gradle-plugin 核心sdk库:tinker-android-lib 非gradle编译用户...
2018-12-29 17:29:45 1078
原创 tinker接入
tinker参数配置说明: 参数 默认值 描述 tinkerPatch 全局信息相关的配置项 tinkerEnable true 是否打开tinker的功能。 oldApk null 基准apk包的路径,必须输入,否则会报错。 newApk null 选填,用于编译补丁apk路径。如果路径合法,即不再编译新的安...
2018-12-25 09:27:18 203
原创 gitosis新建项目
1. 添加项目和相应的用户权限详情参考:https://blog.csdn.net/fwt336/article/details/83822419,此处不再多写。2. 新建项目目录2.1 登录到服务器:ssh user@xxx.xxx.xxx.xxx2.2 进入~/git/repositories目录,执行sudo git init --bare test.git创建项目...
2018-12-06 11:29:45 535 1
原创 ARouter使用之坑
1.使用方法1.1添加依赖和配置android { defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments = [AROUTER_MODULE_NAME: project.getName()...
2018-11-30 16:48:41 2827 5
原创 提交代码到github
1. 新建目录work命令:mkdir work2. 初始化git仓库进入Vwork,然后命令:git init3. 配置git每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:$ git config --global user.name "John Doe"$ git config --global user.ema...
2018-11-30 10:16:22 164
原创 ubuntu双系统安装到安卓开发环境搭建
1.ubuntu系统下载:https://www.ubuntu.com/download/desktop2.ubuntu和win10的双系统安装:https://www.jianshu.com/p/ad5dc60e453d需要补充的有:2.1 细心谨慎按照上面的步骤一步一步来,能设置的都给设置一遍,该注意的上面都已经说了。2.2 独立磁盘空间尽量选择一个单独的磁盘来做ubu...
2018-11-27 11:40:24 686
原创 全局字体快速替换
直接在BaseActivity中添加以下代码:public static Typeface typeface; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { if (typeface == null) { typeface = Type...
2018-11-22 11:59:24 687
转载 无需自定义View,彻底解放shape,selector吧
深度好文,解决了自定义shape文件过多的问题。https://juejin.im/post/5b9682ebe51d450e543e3495github地址:https://github.com/victorfan336/BackgroundLibrary
2018-11-21 15:16:34 161
原创 修改git项目用户权限权限
1.远程登录服务器然后切换会git用户:然后进入~/git/gitosis-admin/目录:可以看到一个文件和一个文件夹,其中gitosis.conf用于管理项目权限,keydir用于存放所有用户的公钥,也就是xxx.pub文件。2.将user.pub加入keyDir目录中需要新增权限的用户在本机电脑生成xxx.pub文件,然后加入到git/gitosis-adm...
2018-11-07 14:08:47 31769
原创 常用的虚拟机性能监控和故障处理工具
1. jps : 虚拟机进程状况工具 可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称,以及这些进程的本地虚拟机唯一ID(LVMID)。 命令格式: jps [option] [hostid] option: -q:只输出LVMID,省略主类的名称; -m: 输出虚拟机进程启动时传给主...
2018-11-03 12:37:30 555
原创 anr日志获取
参考一下链接整理出来的代码:https://codezjx.com/2017/08/06/anr-trace-analytics/https://www.jianshu.com/p/6d855e984b99http://gityuan.com/2016/07/02/android-anr/非常感谢以上博主的奉献。 1.ANR发生的条件输入事件:按钮事件10秒内未响应...
2018-09-29 14:29:50 6305
原创 atlas使用
bug的上线远程修复和模块化更新越来越火,也确实给开发人员和公司带来了很大的便利。而我们公司最近也准备接入阿里巴巴的atlas,下面是使用到的一些资料和总结。一、所有模块独立动态更新1、 app的build.gradle的语句"version = getEnvValue("versionName", "1.0.0");"中修改想要生成的app的versionName(默认为1.0.0) ...
2018-09-22 17:19:46 1652
原创 json类型转换
前言在日常开发中,我们经常会用到json转对象,或者对象转json的情况,一般用到的就是阿里的Fastjson和谷歌的Gson。本篇要说的是Gson中如何将json数据转换为我们想要的数据类型。1.json直接转对象我们一般的操作姿势:直接复制后台下发的json,然后在Android Studio使用Gson插件快捷生成实体类:但是呢,有时候这块是一个模版jso...
2018-09-22 10:43:57 9675
原创 远程adb调试手机
前言平常开发时,我们都是直接用数据线连接手机或设备,然后进行调试。那么有没有一种场景,我们无法用数据线连接,又或是不方便用数据线连接的时候呢?答案是肯定的。这个时候,adb命令就可以大做文章了。1.条件 1)root过的手机:因为我们需要启动adbd端口,所有需要使用adb命令,但是一般手机或用去却没有该权限; 2)手机或设备与电脑处于一个局域网内 ...
2018-09-19 14:39:14 3540
原创 破解SmartGit
SmartGit作为git图形化管理工具,不论是界面还是功能是其他软件所很难媲美的,特别是对于git命令不熟悉的新手。但是只能使用30天,付费是不可能的啦,下面说下破解的方法。 1. 打开“运行”或使用快捷键 windows+R ,输入 %APPDATA%\syntevo\SmartGit 如下图所示:点击“确定”,进入到文件夹: 2. 进入以数字命名的文件夹,删除里...
2018-09-18 17:02:30 3383 2
Hello-jni-ndk
2017-03-03
设计师测量文本行距
2016-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人