9 Mr键

尚未进行身份认证

暂无相关简介

等级
TA的排名 3w+

使用主题Theme实现Android沉浸式状态栏

使用主题Theme实现Android沉浸式状态栏styles.xml<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customi...

2019-08-09 18:01:10

Android消息总线LiveDataBus

Android消息总线LiveDataBusAndroid 的生命周期比较复杂,一般情况下只能覆写 Activity / Fragment 的回调方法(onCreate、onResume、onPause、onStop、onDestroy 等)才能监听生命周期,样板代码少不了,可维护性也较差。Google 为了帮助 Android 开发者更快更好地开发 App,推出了一系列组件,这些组件被打包成...

2019-07-05 14:22:45

Mybatis 3.5.X的特性与BUG

Mybatis 3.5.X的特性与BUGMyBatis 3.5.Xmybatis-3.5.0改善:Bug 修复:不向后兼容的改变(包括3.4.6版本及之前版本)mybatis-3.5.1改善:Bug 修复:不向后兼容的修改MyBatis 3.5.Xmybatis-3.5.0MyBatis 3.5.0 requires Java 8 and later.改善:Avoid ‘Illega...

2019-06-27 12:17:36

AndroidX和Android9

AndroidX和Android9AndroidXAndroidx的fragment快速切换的时候会崩溃Android9权限取消后页面被杀掉重新打开我不是要写一篇介绍androidx和android9的文章,只是想记录一下新框架和新系统出现的问题。AndroidXAndroidx的fragment快速切换的时候会崩溃目前遇到的最大的问题就是androidx的fragment快速切换的时候会...

2019-01-29 14:24:24

react-native 之fetch从网络超时到放弃

react-native 之fetch从网络超时到放弃Fetch是它是React Native中的网络库,是XMLHttpRequest之上的网络封装。它反映了WHATWG fetch规范,可以在whatwg/fetch中找到。 但是Fetch有两个问题 - 无法通过外部中断 - 不支持 timeoutreact-native设置网络超时网上有现成的方案:使用Promise.r...

2018-08-27 11:49:40

react-native Image 实现placeholder占位图

react-native Image 实现placeholder占位图react-native Image没有placeholder这样的props,但是业务有需要这种场景,网上找了几种方法: - 包裹Image,但是该方法在新版本已无法使用 - 使用ImageBackground包裹Image,如果图片有透明度,背景图和网络加载的图片就叠加在一起了所以可以自定义一个组件实现网络加载图...

2018-08-08 16:29:29

读Android源码之WindowServiceManager分析

读Android源码之WindowServiceManager分析WindowManagerService是位于Framework层的窗口管理服务,它的职责是管理系统中的所有窗口,也就是Window,关于Window的介绍,通俗来说,Window就是手机上一块显示区域,也就是Android中的绘制画布Surface,添加一个Window的过程,也就是申请分配一块Surface的过程。而整个流程...

2018-04-24 15:36:03

读Android源码之Window分析

读Android源码之Window分析本篇和下篇主要分析和Window以及WindowManager相关的内容 Abstract base class for a top-level window look and behavior policy. Window在Android是一个窗口的概念,日常开发中我们和它接触的不多,我们更多接触的是View,但是View都是通过Win...

2018-04-24 13:22:51

读Android源码之View分析

读Android源码之View分析一、View的生命周期View的生命周期方法有什么作用呢?其实这些方法在我们自定义View的时候发挥着很大的作用,我们来举几种应用场景。场景1:在Activity启动时获取View的宽高,但是在onCreate、onStart和onResume均无法获取正确的结果。这是因为在Activity的这些方法里,View的绘制可能还没有完成,我们可...

2018-04-24 10:40:24

RecyclerView实现QQ空间和微信朋友圈头部刷新效果

RecyclerView实现QQ空间和微信朋友圈头部刷新效果老规矩先上图 本篇主要讲RecyclerView实现QQ空间和微信朋友圈头部刷新效果,如果想了解ListView如何实现,请查看上篇:ListView实现QQ空间和微信朋友圈头部刷新效果这是Demo地址按照套路,实现上述效果需要重新自定义一个RecyclerView,但是依照不重复定义轮子的原则(前提是了解实现原理)...

2018-04-17 12:01:08

ListView实现QQ空间和微信朋友圈头部刷新效果

ListView实现QQ空间和微信朋友圈头部刷新效果先上图 Demo地址自定义ListView如何实现?先上代码,思考一下,然后再讲解实现步骤。定义刷新接口public interface IRefreshHeader { int STATE_NORMAL = 0; int STATE_REFRESHING = 1; int STATE_DONE...

2018-04-17 10:40:44

Gerrit安装及使用Nginx反向代理

Gerrit安装及使用Nginx反向代理简介Gerrit做为Google用来管理Android代码版本的工具,是一种免费、开放源代码的代码审查软件,使用网页界面。本文主要介绍它的安装步骤。一、准备工作操作系统:Linux 这里用的是Ubuntu16.04Java环境:Java 1.6以上版本都可以 本机装的是64-Bit Server VM Java8的服务器版本Gi...

2018-03-30 17:19:58

TP5 Restful路由设置

TP5 路由设置TP5路由注册按照TP5官方文档Restful资源路由可以这样简化编写:Route::get('api/:ver/test', 'api/:ver.test/index');Route::get('api/:ver/test/:number', 'api/:ver.test/read');表示我们通过下面这两个url: http://www.abc.c...

2018-03-26 15:04:31

PHP Restful PUT方法的参数提交及接收

PHP Restful PUT方法的参数提交及接收我们开发PHP的Restful接口都会知道有PUT方法更新资源,那到底如何使用PUT这个HTTP方法更新资源,避免使用上的误区,下面给出答案。发送PUT请求有时候我们发现接收PUT方法发来的的参数不是我们想要的类型,想要一个参数数组,却被接收成一串字符串,这种问题其实是我们把Content-Type的类型搞错了,我们发送的是applic...

2018-03-19 11:33:11

Ubuntu 安装PHP找不着BZip2

错误如下:checking for BZip2 in default path... not foundconfigure: error: Please reinstall the BZip2 distribution我已经安装了bzip2,应该是需要安装bzip2-dev,可是运行命令sudo apt-get install bzip2-dev 结果是:E: 无法定位软件包 bzi...

2017-09-11 15:44:47

react-native踩过的坑

包管理添加新的第三方包总会遇到各种问题,不是版本不对就是运行不起来,记录下遇到的问题:Error: Cannot find module ‘xxx’module.js:340throw err;^Error: Cannot find module 'xxx'这个问题若不是没引用包就是需要关联下依赖:npm install -dMainApplication.java:5: 错误: 程序包xxx

2017-09-04 14:46:37

ReactNative Component 生命周期

ReactNative Component 生命周期生命周期方法 // // Component Specs and Lifecycle // ---------------------------------------------------------------------- interface ComponentLifecycle<P, S> {

2017-08-03 10:50:56

Android LocalBroadcast跨进程

Android LocalBroadcast跨进程首先这里讲的LocalBroadcast不是通过LocalBroadcastManger发送的广播,这里的跨进程是指应用内跨进程,例如我们有一个跨进程的服务: <service android:name=".service.CoreService" android:exported="false" android:process

2016-10-14 16:20:07

Android 面试题

最近看到有人发布了下面的Android面试题,但是没有答案,于是根据自己的理解和网上的搜索补充了一些题目的答案,欢迎指教。Java技术Java基础对抽象、继承、多态的理解 封装是面向对象编程的特征之一,也是类和对象的主要特征。封装将数据以及加在这些数据上的操作组织在一起,成为有独立意义的构件。外部无法直接访问这些封装了的数据,从而保证了这些数据的正确性。如果这些数据发生了差错,也很容易定位错误是

2016-07-25 23:48:27

Android Studio 自动生成 toString 方法

Android Studio 自动生成 toString 方法我们在开发中经常需要输出JavaBean的内容,这时候避免不了给JavaBean添加toString()方法,但是遇到JavaBean字段非常多的时候,手动写toString()简直就是做噩梦。而对JavaBean进行反射输出Field字段在开发环境还好,生产环境也比较耗费时间。 不过在android开发中还好有Android Stud

2016-06-01 22:37:48

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。