- 博客(20)
- 收藏
- 关注
原创 JS中的浅拷贝和深拷贝
1、javaScript的变量类型(1)基本类型: 5种基本数据类型Undefined、Null、Boolean、Number 和 String,变量是直接按值存放的,存放在栈内存中的简单数据段,可以直接访问。(2)引用类型: 存放在堆内存中的对象,变量保存的是一个指针,这个指针指向另一个位置。当需要访问引用类型(如对象,数组等)的值时,首先从栈中获得该对象的地址指针,然后再从堆内存中...
2018-08-24 19:43:53
246
原创 CSS float和清除浮动
浮动的定义:使元素脱离文档流,按照指定方向发生移动,遇到父级边界或者相邻的浮动元素停了下来(左右浮动)。高度塌陷:浮动元素父元素高度自适应(父元素不写高度时,子元素写了浮动后,父元素会发生高度塌陷),因为浮动元素已经脱离文档流,父元素就无法获取子元素高度了,也就无法撑开父元素了...
2018-07-12 20:17:12
189
原创 View的绘制顺序
View的绘制顺序1.每一个 ViewGroup 会先调用自己的 onDraw()来绘制完自己的主体之后再去绘制它的子 View,绘制子View的方法是dispatchDraw().2.出于效率的考虑,ViewGroup 默认会绕过 draw() 方法,换而直接执行 dispatchDraw(),以此来简化绘制流程。所以如果你自定义了某个 ViewGroup 的子类(比如 LinearLa...
2018-03-28 16:23:45
618
原创 View.post() 解析
小结:View.post(Runnable) 内部会自动分两种情况处理,当 View 还没 attachedToWindow 时,会先将这些 Runnable 操作缓存下来;否则就直接通过 mAttachInfo.mHandler 将这些 Runnable 操作 post 到主线程的 MessageQueue 中等待执行。如果 View.post(Runnable) 的 Runnable 操作被缓...
2018-03-14 17:03:34
1067
原创 Android studio 添加忽略文件
1. SVN 使用SVN用作版本管理器时,添加.gitignore 无效。需要在Settingsz中添加,注意要在项目分享到SVN之前添加,要不然也无效忽略建议:4个文件夹 : .idea .gradle build app/build2个文件 : local.properties app/app.iml1个尾巴:
2018-01-23 16:35:47
802
原创 Handler内存泄漏
Handler 发送的Message在MessageQueue中逗留的时间过长,当退出activity而消息仍未处理时,因为Message是持有了Handler实例引用的,而Handler持有了Activity的引用(非静态内部类默认会持有外部类的引用),所以导致该Activity的内存资源无法及时回收,引发内存泄漏。通常的做法是创建一个静态Handler内部类,然后对Handler持有的对象使用...
2017-11-09 18:42:26
263
原创 Manifest merger failed with multiple errors, see ?
导入外部工程时,项目报错 Error:Execution failed for task ':app:processDebugManifest'.> Manifest merger failed with multiple errors, see logs。点击这个就能看到详细的错误了。一般都是因为引入的三方包存在相同的label icon 等名字。按照提示提示信息替换即
2017-11-08 10:58:42
157
转载 为什么Intent或Bundle中携带的对象需要支持序列化?
因为Intent中只支持传递基本类型的数据,以及String和数组集合,因此你如果想传递一个你自己的对象,那必须要序列化才行。序列化就相当于把这个对象的转换成了字符串,然后传递过去,在返转回对象。
2017-10-27 11:12:20
1087
原创 Android targetSdkVersion和compileSdkVersion的区别
1.compileSdkVersion 告诉 Gradle 用哪个 Android SDK 版本编译你的应用,不会包含到APK中,它纯粹只是在编译 的时候使用。2.targetSdkVersion 是 Android 系统提供前向兼容的主要手段。随着 Android 系统的升级,当某个系统的 API或者模块的行为可能会发生改变,但是为了保证老 APK 的行
2017-08-11 11:43:25
713
原创 Android studio 导入项目报错 project sdk is not defined
1. 是否选择项目所在目录,不能选择外层父目录2. 选择一个SDK
2017-06-18 15:15:55
5941
原创 Handler消息机制
1. Looper 是运行在创建Handler所在的线程中的,这样一来Handler中的业务逻辑就可以切换到创建Handler所在的线程中去执行。也就是在哪个线程创建的Handler,回调就是在哪个线程中2. 线程默认是没有Looper的,如果需要使用Handler就必须为线程创建Looper。主线程在创建时就会初始化Looper,这也是在主线程中默认可以使用Handler的原因。
2017-06-09 15:37:35
250
转载 ViewPager+Fragment+RecyclerView,当切换viewpager时,recyclerview自动滑动问题
这个问题应该是ViewPager在切换是RecyclerView获得了焦点,recyclerView的 focusableOnTouchMode属性默认是true,所以ViewPager切换时recyclerView自动获得焦点就滚动到头部,解决办法是将recyclerView上面的控件的设置android:focusableInTouchMode="true"
2017-05-29 18:43:40
4756
原创 Activity 不调用 onstop
theme中 设置Android:theme="@android:style/Theme.Translucent.NoTitleBar" 或者android:Theme.Material.Light.NoActionBar被该activity遮挡的Activity不会调用onStop()
2017-04-10 11:15:21
1014
原创 SVN 分支合并到主干
在主干仓库(本地项目)上点击右键选择合并,然后选择第一个合并类型:合并一个范围的版本。1.From 选择选择主干2.To 选择要合并的分支3.其他选项不变4.next,mrege
2016-11-25 14:31:33
396
原创 RecyclerView 切换数据源导致界面空白问题
BUG:在做过滤器时,用的是同一个RecyclerView,RecyclerView有加有固定头部,第一类过滤有很多数据超过一屏,第二类没有数据,当第一类数据滑过一屏,切换至第二类时,固定头部上方留有大段空白解决方案:将RecyclerView移动至头部 mStaggeredManager.scrollToPositionWithOffset(0, -mUserInfo
2016-10-26 17:32:14
2799
转载 设计模式—— 单例模式
单例模式是设计模式中最常见也最简单的一种设计模式,保证了在程序中只有一个实例存在并且能全局的访问到。比如在Android实际APP 开发中用到的 账号信息对象管理, 数据库对象(SQLiteOpenHelper)等都会用到单例模式。下面针对一些例子分析一下我们在开发过程中应用单例模式需要注意的点。一、作用单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局
2016-09-07 11:55:06
209
原创 Luobo数据库升级
1. 升级数据库版本 DATABASE_VERSION2.定义新版本Sql语句常量(建表或增加字段)3.判断数据库版本,小于新版本数据库执行SQL语句
2016-08-24 16:59:55
328
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人