Android
文章平均质量分 95
后撤步三分o
这个作者很懒,什么都没留下…
展开
-
EditText切换输入法软件的enter按键,实现跳到下一个EditText或搜索等
首先,输入法软件的enter键其实是可以变的,可以变next,搜索等等 例如:实现一个登陆界面 代码如下: xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_pare原创 2015-03-22 00:37:38 · 687 阅读 · 0 评论 -
Android Jetpack组件之数据库Room详解(二)
本文涉及Library的版本如下:androidx.room:room-runtime:2.1.0-alpha03androidx.room:room-compiler:2.1.0-alpha03(注解编译器)回顾一下安卓的SQLiteOpenHelper相关类首先放一个关于安卓数据库的类图:SQLiteOpenHelper是一个抽象类,通常自己实现数据库,需要继承SQLiteOp...原创 2019-04-16 12:03:44 · 1076 阅读 · 0 评论 -
Android Jetpack组件之数据库Room详解(一)
本文涉及Library的版本如下:androidx.room:room-runtime:2.1.0-alpha03androidx.room:room-compiler:2.1.0-alpha03(注解编译器)androidx.room:room-rxjava2:2.1.0-alpha03Room的介绍Room为了SQLite提供了一个抽象层,对Android SQLite进行了封装...原创 2019-01-26 12:22:01 · 736 阅读 · 2 评论 -
Android Jetpack组件之Lifecycles库详解
Android Jetpack 组件是库的集合,这些库是为了协同工作而构建的,不过也可以单独采用,接下来会一一详细地学习这些库, 下面源码版本是com.android.support:appcompat-v7:28.0.0, 以及库android.arch.lifecycle:extensions:1.1.1Lifecycles库是拿来干什么的这个库从系统框架层去管理具有生命周期的组件,例如a...原创 2019-01-15 08:06:25 · 289 阅读 · 0 评论 -
Android Jetpack组件 - ViewModel,LiveData使用以及原理
本文涉及的源码版本如下:com.android.support:appcompat-v7:27.1.1android.arch.lifecycle:extensions:1.1.1android.arch.lifecycle:viewmodel:1.1.1android.arch.lifecycle:livedata:1.1.1什么是ViewModel, 以及工作原理ViewMo...原创 2019-01-18 07:57:34 · 806 阅读 · 0 评论 -
Context真正的实现与Context的设计模式
说明:基于API 26的源码分析1. 类图Context: 是一个抽象类。ContextImpl: 是Context真正的实现类。ContextWrapper: 继承Context,是一个包装类,有一个mBase的成员变量,mBase是Context类型,Context抽象方法都是由mBase实现的。子类通过调用attachBaseContext方法替换mBase成员变量。Applic...原创 2019-01-11 09:59:26 · 1658 阅读 · 0 评论 -
再不用ContraintLayout就out啦
ContraintLayout 属性本文基于ContraintLayout 1.1版本, 参考ContraintLayout官方文档并结合实际的例子说明ContraintLayout 有以下作用:Relative positioning 相对位置Margin 边距Centering position 中间位置Visibility behavior 可见性行为Dimension co...原创 2019-01-10 23:09:56 · 253 阅读 · 0 评论 -
站在大神的肩膀上 - 简述Android应用启动流程
最近看了很多大神的博客,都是有关Android启动流程文章 ,看得很辛苦,似懂非懂的感觉。这篇文章是对Android启动流程的总结和自己的见解,没有复杂源码分析,只是简单总结阐述流程而已。系统进程启动流程手机开机时,先由init进程创建 Zygote进程, Zygote进程会启动虚拟机(ART:4.4以上; Dalvik虚拟机:4.4以下;两者的区别是:ART是运行本地机器码的, 比Dalvik原创 2017-11-03 11:17:01 · 443 阅读 · 0 评论 -
适配安卓沉浸式状态栏的新姿势
Github Demo: https://github.com/lliuguangbo/AutoSystemBar针对状态栏,官方从4.4版本开始支持,但是4.4和5.0以上API是不同的,6.0以上提供了两种状态栏图标样式 分别是白色和黑色样式。针对状态栏图标样式的修改,小米和魅族提供额外的API,在6.0以下都支持,可以参考它们的文档: - https://dev.mi.com/consol原创 2017-11-03 11:15:47 · 713 阅读 · 0 评论 -
关于ViewStub的所有 - 优化你的布局
ViewStub - Optimized Layout作用:用于优化布局,懒加载,运行时才会加载布局。使用场景:通常用于有些隐藏的或者特殊情况才会显示的布局。 例如:一个ListView,数据为空时,显示一个布局告诉用户在xml中是使用:<ViewStubandroid:id="@+id/stub"android:inflatedId="@+id/subTree"android:lay原创 2017-11-03 11:15:06 · 308 阅读 · 0 评论 -
CollapsingToolbarLayout源码分析
version: 26.1.0DemoCollapsingToolbarLayout构造器//检查当前的activity是否引用AppCompat的主题ThemeUtils.checkAppCompatTheme(context);//文字收缩的帮助类mCollapsingTextHelper = new CollapsingTextHelper(this);....// 保证调用inva原创 2017-11-03 11:13:47 · 850 阅读 · 0 评论 -
Android之VectorDrawable
之前官方VectorDrawable只支持api 21以上,前不久android support libriry 23.2.0出来了,VectorDrawable终于可以向下兼容了。相比之前图片来说,矢量图可以解决不同尺寸手机图片失真问题,可以不用多套图片去适配不同尺寸手机,还可以减少apk体积.官方的icon全都提供svg的版本:material design icon注意:矢量图形的初始加载可能原创 2016-03-13 17:38:56 · 810 阅读 · 0 评论 -
Android Jetpack组件之数据库Room详解(三)
本文涉及Library的版本如下:androidx.room:room-runtime:2.1.0-alpha03androidx.room:room-compiler:2.1.0-alpha03(注解编译器)Room对LiveData扩展下面先列一个room中使用livedata的例子:@Daopublic interface UserDao { @Query("SELE...原创 2019-04-16 12:04:52 · 482 阅读 · 0 评论