原创
文章平均质量分 56
LeoHoFly
这个作者很懒,什么都没留下…
展开
-
ReportFragment cannot be cast to ReportFragment
环境Replugin插件框架问题原因问题原因的分析这段文字没有经过润色,纯粹是初稿,不一定易于阅读,这段看不下去的同学可以直接看文章最后的解决方案。ReportFragment是android.arch.lifecycle组件中的类,lifecycle组件中的ProcessLifecycleOwnerInitializer继承自ContentProvider,利用ContentProv...原创 2020-03-10 18:26:05 · 2435 阅读 · 0 评论 -
Git 情景处理
本地代码尚不能提交,但是又必须同步服务器代码执行git stash :将本地代码保存;执行git pull origin (rBranch):(lBranch) :同步服务器代码;执行git stash apply [(stashName) ] :将stash中的代码合并到工作区,解决好冲突;需要将远程分支checkout到本地并且在本地建立对应分支git checkout (–track)原创 2017-06-15 10:49:49 · 498 阅读 · 0 评论 -
Android Studio、Git 解决合并冲突
合并分支,解决冲突执行git merge ,如果有冲突,就会出现如下格式:<<<<<<< HEAD这个位置的内容就是当前所在分支的内容=======这个位置的内容就是合并进来的分支的内容>>>>>>> branchName用下面的设置来改进冲突标记使其也显示(分支)共同祖先(感谢罗宾·斯托克和休·吉登斯): git config --global merge.conflictstyle d原创 2016-07-07 16:20:30 · 25853 阅读 · 5 评论 -
获取User-Agent
/** * @return 浏览器的userAgent, 某些机型含有中文。 */public static String getUserAgent() { String userAgent = getWebViewUserAgent(); if (StringUtil.isEmpty(userAgent)) userAgent = getSystemUserAgent();原创 2017-10-10 19:55:53 · 3022 阅读 · 0 评论 -
Kotlin的inline内联函数
方法调用流程调用一个方法是一个压栈和出栈的过程,调用方法时将栈针压入方法栈,然后执行方法体,方法结束时将栈针出栈,这个压栈和出栈的过程会耗费资源,这个过程中传递形参也会耗费资源。为什么需要inline有些简单的方法会被频繁调用,什么叫简单的方法呢,举个例子:fun <T> check(lock: Lock, body: () -> T): T { lock.lock()原创 2017-11-03 17:47:20 · 14640 阅读 · 24 评论 -
Android项目初次构建慢,building gradle project info很久
初次打开Android项目,Loading时间长,一直卡在Building gradle project info初次打开Android项目,需要根据gradle-wrapper.properties中的配置从gradle服务器下载对应的gradle版本并进行配置,这个过程非常耗时,解决方法如下,以gradle-3.4.1为例:方法一快速但有缺陷先打开project/gradle/wrapper/原创 2017-04-24 20:03:44 · 5095 阅读 · 0 评论 -
设置以渐变、图片为背景的状态栏
如何改变状态栏颜色 设置app的主题,状态栏的颜色就是colorPrimaryDark的颜色。但是只能设置纯色。 <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme原创 2017-12-28 17:43:25 · 538 阅读 · 0 评论 -
Android Architecture Components
开发者经常面临的问题 Android应用由四大组件构成,各组件可以被独立且无序的调起,用户会在各个App之间来回切换。组件启动后,生命周期会受用户的操作和系统影响,不完全受开发者控制。而由于设备内存问题,进程随时可能被系统强杀,所以不要将数据和状态直接存储在组件中,也不要让组件互相依赖。问题实例内存泄漏:在Activity中发起网络请求,在网络请求返回之前退出Activit原创 2018-01-04 19:51:15 · 758 阅读 · 1 评论 -
MVP-MVVM
MVPModelModel提供用户界面需要显示的数据,包括从服务器获取数据、从本地缓存获取数据等数据操作。ViewView层应该尽量的精简,负责显示数据和用户交互。MVP下Activity和Fragment体现在了这一层,Activity一般也就做加载UI视图、设置事件监听再交由Presenter处理的一些工作,所以也就需要持有相应Presenter的引用。Pr原创 2018-01-04 19:51:58 · 372 阅读 · 0 评论 -
Warning: can't find referenced field/method '...' in library class ...
打release包时,proguard可能会报以下警告导致打包失败: Warning: can’t find referenced field/method ‘…’ in library class … Warning: can’t find referenced field/method ‘…’ in program class …原因项目中的代码引用了jar包中的某个方法或变量,原创 2018-03-01 21:25:27 · 964 阅读 · 0 评论 -
Android Dialog宽度match_parent
Dialog满宽的两种方式首先为Dialog设置Style <style name="MyTheme.Dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <!-- 边框 --&a原创 2018-06-13 14:17:53 · 2509 阅读 · 0 评论 -
Android 圆角边框RoundRect原理
绘制圆角矩形的方法 /** * Draw the specified round-rect using the specified paint. The roundrect will be filled or * framed based on the Style in the paint. * * @param rect The rectangul...原创 2018-06-21 10:48:21 · 3958 阅读 · 0 评论 -
Gradle中的常量
定义常量以Android为例,在根目录下有一个gradle.properties文件,可以在该文件中定义常量:BUILD_TOOLS_VERSION = 26.0.2 //字符串不要加引号。COMPILE_SDK_VERSION = 26TARGET_SDK_VERSION = 23MIN_SDK_VERSION = 15使用常量在.gradle文件中,直接引用常量的...原创 2018-06-21 10:48:45 · 1857 阅读 · 0 评论 -
ANR分析
产生ANR的原因While your activity is in the foreground, your app has not responded to an input event or BroadcastReceiver (such as key press or screen touch events) within 5 seconds.While you do not hav...原创 2018-06-19 13:58:36 · 2288 阅读 · 1 评论 -
ConstraintLayout
官网添加约束父布局的约束如图添加了A控件和其父布局左侧的约束,它们之间的间距可以调整。互相约束控件可以两两之间约束,B在A右侧,C在A下方。B和A不必上下对齐,B可以上下移动。对齐控件之间可以在相同一侧对齐,对齐后也能再设置偏移。基准线对齐控件之间可以互相以文字基准线对齐。Guideline约束可以在横竖两个方向创建不可见的引导线,可以用绝对距离或百分比距离定义...原创 2018-10-26 13:16:44 · 510 阅读 · 0 评论 -
解决在现有Android项目中集成Flutter遇到的问题
如何添加Flutter到现有Android项目Flutter官方有详细的文档, 参考文档即可。集成过程中遇到的神坑主Module名称一定要为"app"如果主Module名称不是"app", 执行Flutter#createView后,会出现native层的崩溃。并且会出现错误信息VM snapshot must be valid, 崩溃信息如下:#1 mainSIGABRT解析原...原创 2019-02-13 15:50:30 · 1636 阅读 · 1 评论 -
Android 打印当前进程的所有线程信息
private void printThread() { Map<Thread, StackTraceElement[]> stacks = Thread.getAllStackTraces(); Set<Thread> set = stacks.keySet(); for (Thread key : set) { StackT原创 2017-06-19 10:09:39 · 7477 阅读 · 0 评论 -
最全Git命令,掌握命令行操作。
git 中的路径都要用网络路径,正斜杠”/”.暂存区:保存add命令添加的修改git init 初始化git add 将文件添加到仓库(git add . 添加所有文件)git status 查看文件状态(基于版本库)git commit -m “msg” 提交更改(Insert 进入修改模式,Esc进入命令模式 :wq保存并退出 :q!不保存退出)git log原创 2016-11-02 17:14:41 · 4574 阅读 · 0 评论 -
Git命令,分场景
本地代码尚不能提交,但是又必须同步服务器代码执行git stash :将本地代码保存;执行git pull origin ‘rBranch’:’lBranch’ :同步服务器代码;执行git stash apply [‘stashName’] :将stash中的代码合并到工作区,解决好冲突;需要将远程分支checkout到本地并且在本地建立对应分支git checkout ‘–track’原创 2016-11-02 17:17:37 · 589 阅读 · 0 评论 -
监听WebView的各种点击事件
重写WebView,在WebView中设置接口,相当于自定义一个OnClickListener接口,然后使用的时候就可以调用setOnTouchScreenListener()方法,实现你想要的效果。import android.content.Context;import android.util.AttributeSet;import android.view.KeyEvent;imp原创 2015-05-04 15:32:00 · 17114 阅读 · 2 评论 -
Eclipse超实用快捷键,背熟这些开发效率提高20%
alt+/ 代码补全,代码提示ctrl + F11 运行当前程序alt + shift + j 生成文档化注释ctrl + shift + / 多行注释ctrl + shift + \ 去掉多行注释ctrl + / 单行注释或取消单行注释alt + alt + -> 回到刚才编辑的文件alt + 上箭头/下箭头 选中部分上下移动ctrl + m 窗口最大化原创 2015-05-04 20:04:09 · 645 阅读 · 0 评论 -
ListView滑动到底部自动加载,仿腾讯新闻.
为ListView设置一个footerView,布局为一个ProgressBar和TextView.监听ListView的滑动事件,当滑动状态为OnScrollListener.SCROLL_STATE_IDLE(刚滑动完,停止滑动) ,并且当前没有加载(isLoading为false)时, 显示footerView中的布局,然后异步加载数据requestNews(),拿到网络数据后,隐藏fo原创 2015-05-06 19:52:29 · 1177 阅读 · 0 评论 -
Java,Android类加载顺序真正详解
package com.raymond.test03;public class Parent1 { { System.out.println("parent block ........" + staticVar); } public String parent = getUnStatic(); private static String staticVar = getSta原创 2015-05-22 11:19:31 · 2129 阅读 · 0 评论 -
Android 控件逐渐出现,逐渐消失的动画
第一步:首先在xml布局文件中设置该控件为android:visibility="gone"。第二步:在代码中配置两个alphaAnimation appearAnimation = new AlphaAnimation(0, 1); appearAnimation.setDuration(500); disapp原创 2015-05-21 09:55:55 · 19294 阅读 · 6 评论 -
Android Stuido超全快捷键
Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码,在project视图下对项目文件夹使用该快捷键可以将所有代码格式化 Ctrl+Alt+O 优化导入的类和包 Alt+Insert 生成代码(如get,set方法,构造函数等) Ctrl+E或者Alt+Shift+C 最近更改的代码 Ctrl+R 替换文本原创 2015-11-04 13:51:25 · 923 阅读 · 0 评论 -
Android仿微信聊天图片缩略图裁剪
一、首先要明确,”ImageView控件的大小“ 和 “用src属性设置的图片的大小”并不是一个概念,可以通过设置scaleType属性实现想要的效果。借用别的大神做的一张图简单介绍一下scaleType属性: 常量 public static final ImageView.ScaleType CENTER 在视图中使图像居中,不执行缩放。 在 XML 中可以使用的语法: andr原创 2015-11-04 19:32:44 · 7358 阅读 · 11 评论 -
setTranslationY()
Sets the vertical location of this view relative to its top position. This effectively positions the object post-layout; 设置这个控件相对于其顶部位置的垂直位置。这有效地定位在对象的布局后 一、对控件使用setTranslationY(i),意味着在竖直方向上将该控件从它本来的原创 2015-11-25 15:52:48 · 14757 阅读 · 0 评论 -
Android录音播放工具类,仿微信语音聊天。
代码是从聊天类项目中抽出来的,播放类中含有本地播放和网络播放,做法仿微信,先将网络路径中的.amr文件下载下来,然后存到本地播放。 一、录音类import java.io.File;import java.io.IOException;import android.media.MediaRecorder;public class ChatRecorder { private String原创 2015-11-02 20:08:37 · 4067 阅读 · 0 评论 -
Android Emoji表情方案
emoji 一,比较简单的emoji方案: 1,选择表情:从EmojiBean(resId,unicode码),选择表情后,将unicode码拼在String上显示在输入框,输入框中会根据所有字符的unicode找到对应的resId,int unicode = Character.codePointAt(text, i); Map < int unicode,int resId>.get(uni原创 2015-11-30 17:05:24 · 3857 阅读 · 3 评论 -
Android TextView 文字空白解决方案
*Android的TextView控件会在文字上下加上默认的padding值,该值随着文字大小成正比变化,只要为TextView设置android:includeFontPadding=”false”;就可以减少大部分上下空白,而且如果文字sp值小,也就看不出空白了。ps.在Eclipse编辑器上可能看不出效果,在真机上就有效果了,一下是xml演示代码:<?xml version="1.0" enc原创 2016-01-07 21:02:23 · 5400 阅读 · 0 评论 -
Android setAdapter addHeaderView 报错解决方案
报错内容:Cannot add header view to list – setAdapter has already been called1、在sdk <=16的版本中,ListView的addHeaderView()方法是这样的: public void addHeaderView(View v, Object data, boolean isSelectable) { if原创 2015-12-08 14:31:28 · 1742 阅读 · 0 评论 -
Volley源码解析
一、简介Volley是谷歌官方提供的Android应用程序网络请求框架。 1、入口 RequestQueue类中的add方法。/** * Adds a Request to the dispatch queue. * @param request The request to service * @return The passed-in原创 2016-02-01 10:17:51 · 783 阅读 · 0 评论 -
Optional
Optional 作为一名Java开发者,在开发过程中,判断是否为空是让我纠结的几个点之一,听说Java 8提供了一个Optional类用于解决这个问题,我已经迫不及待要去了解他了。作用 经过研究使用之后,得出一个结论:Optional类其实是用一种具象的方式来避免开发者忘记判空,具体来说就是,Optional是一种傻瓜式的方式,因为Null自身的可读性是很差的,所以利用Optional包裹操原创 2016-07-06 15:48:59 · 1661 阅读 · 0 评论 -
Lambda Expressions
Lambda 匿名内部类已经是一种简洁的表示方法了,但是还有一个问题,例如一个接口,它只含有一个方法,那么匿名内部类就不那么易于使用了,因为会出现很多冗余的代码,这个时候开发者就会想要将函数当成一个参数传递给一个方法,例如为控件设置点击事件。所以就出现了Lambda表达式,Java8引入了这个新特性,使用Android Studio编程时,会发现为控件设置点击事件的代码会“变样”,如下第二种表示原创 2016-07-06 15:49:36 · 560 阅读 · 0 评论