- 博客(42)
- 收藏
- 关注
原创 ViewPager2设置overScrollMode无效
通常对于滑动类的View设置 OverScrollMode=“never”,可以去掉滑动到边界时的阴影,但是对于ViewPage2设置OverScrollMode=“never”,却没有效果。解决方法:View child = viewPager2.getChildAt(0);if (child instanceof RecyclerView) { child.setOverScrollMode(View.OVER_SCROLL_NEVER);}...
2021-05-13 14:45:42
914
原创 kotlin ViewBinding的使用
ViewBinding的优点:仅仅支持绑定 View不需要在布局文件中添加layout标签需要在模块级build.gradle文件中添加 viewBinding = true 即可使用效率高于DataBinding,因为避免了与数据绑定相关的开销和性能问题相比于kotlin-android-extensions插件避免了空异常Gradle配置:// Android Studio 3.6android { viewBinding { enabled = true
2021-02-28 21:51:55
4562
2
原创 Android 封装Span的各种用法
前言在开发过程中,TextView中会出现一些特殊内容(如:部分内容颜色、字体、大小不同,并且部分字体可点击),写多个TextView又会显得麻烦,那又怎么解决这个问题呢?首页我们来看看TextView的源码,在android.text.style包下,有很多Span类,那么我们可以使用SpannableStringBuilder来设置Span,先看看实现效果:使用方式: val builder = SpannableStringUtil.create(context!!)
2021-01-07 14:24:48
427
1
原创 Android通用DialogFragment
前言在开发过程中,我们会经常使用对话框,为了提高开发效率,于是我使用DialogFragment封装了一个通过的对话框。为什么使用DialogFragment首先在使用 DialogFragment之前,我们创建对话框一般都会采用Dialog的形式,并且从编写代码的角度来看,Dialog使用起来也较为简单,但Android 官方推荐使用 DialogFragment 来代替 Dialog。DialogFragment 有着Dialog 所没有的特性在手机配置变化,导致Activity需要重新创建时,
2020-12-22 11:41:43
4686
5
原创 android解决点击跳转重复activity
前言在Android开发过程中,我们总会遇到快速点击按钮跳转Activity时,多次打开同一个Activity。那么要怎样解决这个问题呢,如下:方案一:设置activity启动模式为SingleTop缺点:会容易遗漏,每个去配置也麻烦,如下:<activity android:name=".MainActivity" android:launchMode="singleTop"/>方案二:通过拦截触摸事件的派发缺点:会导致页面跳转后,在规定时间内所有的点击都
2020-11-16 11:24:54
1720
原创 EditText设置输入金额过滤器
editText.setFilters(new InputFilter[] {new MoneyInputFilter ()});MoneyInputFilter 类实现:/** * Created by Hc_Android on 2019/9/10. * 输入金额时的文本过虑器,可设置最大输入金额、小数点后位数 */public class MoneyInputFilter implements InputFilter { /** * 正则表达式:以0或正整数开头后跟0
2020-10-24 23:00:39
408
原创 Recyclerview分割线
JAVA代码:public class LinearLayoutDivider extends RecyclerView.ItemDecoration { private Paint mPaint; private Drawable mDivider; private int mDividerHeight = 2;//分割线高度,默认为1px private int mOrientation;//列表的方向:LinearLayoutManager.VERTICAL或Li
2020-10-22 15:47:50
466
原创 EditText中文英文长度限制
如果将EditText的输入长度设置为N个字符,则有如下两种方式:1.在xml布局文件中对EditText添加 android:maxLength=“N”,比如; <EditText android:id="@+id/et_test" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxLength="16" />
2020-09-18 21:56:48
612
原创 As无法连接模拟器处理方案
1、打开Terminal,如下图:2、输入各大模拟器地址:夜神模拟器:adb connect 127.0.0.1:62001逍遥安卓模拟器:adb connect 127.0.0.1:21503天天模拟器:adb connect 127.0.0.1:6555海马玩模拟器:adb connect 127.0.0.1:53001网易MUMU模拟器:adb connect 127.0.0.1:7555原生模拟器:adb connect (你的IP地址):5555连接成功示意图如下图:.
2020-09-18 20:56:51
1078
原创 android出现Error: Program type already present: com.google.common.util.concurrent.ListenableFuture
在gradle.properties中添加以下代码:android.useAndroidX=trueandroid.enableJetifier=true然后Clean和Build这个项目,应该就可以运行;如果还是出现这个问题,则在 app目录下build.gradle 中添加以下代码:configurations { all*.exclude group: 'com.google.guava', module: 'listenablefuture'}这个错误通常是由一些实现谷歌的番
2020-08-19 19:55:39
1204
原创 kotlin使用retrofit请求出现Parameter type must not include a type variable or wildcard
报错日志: java.lang.IllegalArgumentException: Parameter type must not include a type variable or wildcard: java.util.Map<java.lang.String, ?> (parameter #1)定义接口 @FormUrlEncoded @POST("appapi.php") fun getLoginData(@FieldMap map:Map<String,@Jv
2020-07-24 15:14:17
2498
原创 Android仿淘宝首页横条指示器
淘宝首页菜单底部的滑动位置指示器该如何实现呢?实现方法:1.上方横滑列表可以直接使用RecyclerView GridLayoutManager横向实现2.指示器实现步骤:(1) .计算出RecyclerView划出屏幕的距离w1和剩余宽度w2的比例y,y = w1 / (总宽度w3 - 可使视区域宽度w4)(2) .计算出指示器该移动的距离w5 = y * (指示器的总宽度w6 - 滑块宽度w7)(3) .指示器布局 <RelativeLayout android:
2020-05-31 00:58:05
2477
原创 Kotlin “==“和“===“之间的区别
在kotlin中==比较的是数值是否相等, 而 ===比较的是两个对象的地址是否相等,比如: val a: Int =100 val b: Int? = a val c: Int? = a println(b == c) //true println(b === c) //false== 比较数值, 而===比较的是地址, 前者为true, 后者为false,这个和Java中的运行结果相同,那我们再看另一种情况: val a: Int =100 va
2020-05-10 19:58:22
411
原创 kotlin open与final
kotlin 的 open 与java 中的 final相反。kotlin中类和类中的方法都是final类不能继承,类中方法不能重写,打破final限制,需要添加open关键字:为类增加open,class可以被继承了open class BaseActivity : AppCompatActivity() { }为方法增加open,嘿嘿,就可以被重写了open fun setRoo...
2020-04-22 23:02:23
412
原创 android编译出现Invoke-customs are only supported starting with Android O (--min-api 26)
Android studio在编译项目的时候,会遇到如下问题:Android issues: Invoke-customs are only supported starting with Android O (--min-api 26) 解决方案:build.gradle文件中android节点下增加: compileOptions { sourceCo...
2020-04-22 22:07:50
1345
原创 Android Replugin实现插件化
在开发Android应用中,App会越来越大,变得越来越不好管理。各模块之间耦合度高、编译效率慢、项目冲突不断等等。那么要怎样才能解决这个问题呢?于是就出现了组件化开发和插件化开发,这里我主要着重讲解Replugin插件化开发。首先,我们需要认识Replugin框架,开发的app可以作为插件直接安装到宿主app中运行。而这个插件可以随时安装和卸载,非常方便。对于需要频繁更新的app或者使用频率比...
2020-04-13 23:35:26
909
原创 报Failed to resolve: org.jetbrains.kotlin:kotlin-stdlib-jre7的错误
在Android开发中,有时我们会遇到关于org.jetbrains.kotlin:kotlin-stdlib-jre7的错误,那么怎么处理呢?解决方法如下:在高版本的kotlin插件module下的gradle.build内的引用需要将下面引用替换成下面这个注意:低版本的kotlin插件module下的gradle.build内的引用是jre7,高版本的kotlin插件module下的...
2020-03-11 23:54:42
2405
原创 android view 转Bitmap图片并保存
在Android项目开发过程中,会遇到分享功能有分享链接也有分享图片,其中分享图片,然而有时又没有分享的图片,那怎么办呢?那么可以将view 转成bitmap 再到图片分享,还有一种情况是将不可见的view 转成bitmap ,这种view是没有直接显示在界面上的,需要我们使用inflate 进行创建的view。第一种先看通过 DrawingCache 方法来截取普通的view,获取它的视图(...
2019-12-03 14:34:31
524
原创 android 9.0明文HTTP限制
android开发过程中当 targetSdkVersion >= Build.VERSION_CODES.P 时,默认限制了HTTP请求,并出现相关日志:java.net.UnknownServiceException: CLEARTEXT communication to xxx not permitted by network security policy解决方案如下:方案一...
2019-11-30 23:55:58
207
原创 android安装apk出现android.os.FileUriExposedException
问题描述:解决AndroidN 上 安装Apk时报错:android.os.FileUriExposedException: file:///storage/emulated/0/download/%E5%85%A8%E5%90%8D%E7%82%B9%E6%BB%B4 exposed beyond app through Intent.getData()解决方法:1、在AndroidMan...
2019-08-10 15:15:25
6999
原创 解决com.google.code.findbugs:jsr305依赖库冲突问题
报错信息* What went wrong:Execution failed for task ':app:preDebugAndroidTestBuild'.> Conflict with dependency 'com.google.code.findbugs:jsr305' in project ':app'. Resolved versions for app (3.0.1)...
2019-07-12 15:17:38
8025
1
原创 Android app闪退后fragment重叠bug解决方法
方法一通过注释掉这句话,这样主 Activity 因为种种原因被回收的时候就不会保存之前的 fragment state@OverrideprotectedvoidonSaveInstanceState(Bundle outState) {//如果用以下这种做法则不保存状态,再次进来的话会显示默认tab//总是执行这句代码来调用父类去保存视图层的状态//super.onSaveInst...
2019-07-05 10:40:19
1141
1
原创 Android中javax annotation Nullable找不到的解决方案
在某些Android开源库中有时会遇到下面的引用找不到的问题:import javax.annotation.Nonnull;import javax.annotation.Nullable;其实Android实现了javax的类似注解,可以使用下面的引用替换:import android.support.annotation.NonNull;import android.support...
2019-07-05 10:26:01
6757
原创 Android ScrollView 嵌套 RecyclerView或者ListView进入界面不在顶部
在Android开发过程中,我们有时会用ScrollView 嵌套 ListView或者RecyclerView,但当我们进入界面的时候看到的不是最顶部,而是ListView或者RecyclerView。出现问题原因:RecyclerView或者ListView从ScrollView中夺取了焦点,位置显示在焦点的位置去了,所以进去之后界面不在顶部,而是处于焦点位置。解决方法:方法1: 禁止...
2019-07-04 10:21:06
440
原创 Android将library打包成jar文件或aar文件
打包jar新建一个Library,这个在studio里面很简单就可以做到。当逻辑写完之后,需要配置grade文件,代码如下:task makeJar(type: Copy) { //删除存在的 delete 'build/libs/mylibrary.jar' //设置拷贝的文件 from('build/intermediates/bundles/rele...
2019-05-07 19:16:03
460
原创 如何搭建Flutter环境
1、获取flutterSDK首先打开 https://github.com/flutter/flutter.git 我们会看到如下图所示界面,直接下载或使用Git工具clone。也可以点击https://flutter.io/sdk-archive/ ,直接选择下载对应的flutterSDK版本,界面图如下所示:2、配置环境变量下载flutterSDK路径如下图:然后配置环境变量:...
2019-05-07 18:58:03
169
转载 Git使用教程
一、Git是什么Git 与CVS、Subversion 一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。Git 的速度很快,这对于诸如 Linux 内核这样的大项目来说自然很重要,Git 最为出色的是它的合并追踪(merge tracing)能力二、Git的配置Git官网下载地址:https://git-scm...
2019-05-07 15:21:11
100
原创 Android studio如何引用aar包
1、将目标aar文件,例如tanlibrary-1.0.0.aar文件,复制粘贴在工程的app/libs/目录下。2、在app目录下的build.gradle文件中添加以下代码:android { repositories { flatDir { dirs 'libs' } }}dependencies { ...
2019-04-21 20:49:21
2283
原创 Android自定义饱和度实现图片置灰
设置饱和度为黑白图的代码如下:ColorMatrix cm = new ColorMatrix();cm.setSaturation(0f); // 设置饱和度:0为纯黑白,饱和度为0;1为饱和度为100,即原图;ColorMatrixColorFilter grayColorFilter = new ColorMatrixColorFilter(cm);imageview.setColo...
2019-03-26 14:38:19
1061
1
原创 IDEA使用Mybatis-generator插件快速生成代码
使用这个插件可以快速生成一些代码,包含 实体类/Mapper接口/*Mapper.xml文件。首先需要我们创建一个maven项目,然后在pom.xml中添加代码<plugins> <plugin> <!--Mybatis-generator插件,用于自动生成Mapper和POJO--> <groupId>...
2019-03-08 14:28:12
693
1
原创 使用IDEA创建springboot项目
首先打开idea主界面选择 Create New Project在弹出的页面中我们选择左侧的Spring Initializr,jdk版本选择自己安装的版本,我这里选择1.8,URL选择默认的就好。特别说明:由于springboot版本选择的是2.0.3所以jdk版本应该为1.8及以上,否则不支持。这里选择Default URL需要在有网络的情况下才可以加载。直接Next就好。在Group...
2019-03-08 13:47:47
428
原创 ButterKnife8.4.0 onclick点击事件没反应
首先看看是否只添加了 implementation ‘com.jakewharton:butterknife:8.4.0’,而没有添加 annotationProcessor ‘com.jakewharton:butterknife-compiler:8.8.1’如果项目里moudle app 依赖着lirbrarycompile ‘com.jakewharton:butterknife:8...
2019-03-06 16:38:24
449
转载 解决Android studio连接不上真机问题
在Android开发过程中,需要使用真机进行测试时,由于诸多原因,我们无法连接真机那如何判断是USB驱动没有安装好,首先打开设备管理器,再选择其他设备,如果出现一个带感叹号的“ADB Interface”,则表示USB驱动没有安装好。解决办法如下:1、通过AndroidStudio的“Tools”→“Android”→“SDK Manager”,打开“Default Settings”对话框...
2019-03-04 11:16:26
6444
原创 如何用github搭建博客
1、创建一个github账户,然后登陆账户创建一个新的repo。2、注意该repo的名字,必须保持格式.github.io,其中替换成你的github账户名,然后点击确定,完成仓库的创建。3、创建完成后使用git命令把仓库克隆到本地,例如输入下面的命令,git clone 仓库地址!4、在我们克隆的仓库文件夹中,新建一个html文件,在文件里面写入 “welcome to my blo...
2019-02-21 13:05:36
310
原创 如何用github生成依赖库
在Android项目中经常需要依赖使用别人开发的第三方依赖库,使开发更加方便。那我们如何将自己的项目制作依赖供他人使用呢,步骤如下:1、新建android项目,在项目中新建module,如图1所示。2、在module中书写自己的工具或者项目3、将自己的项目推送到github4.在github中找到对应的项目创建一个releases,并且公布出去5、打开网址https://jitpa...
2019-02-12 16:00:59
1070
原创 Android面试题(Android部分)
1、Activity生命周期?onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDetroy()2、activity、Service、BroadcastReceiver的作用Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最...
2019-01-26 19:59:32
211
原创 Android面试题(java部分)
1、面向对象的特征有哪些?封装、继承、多态和抽象。2、构造方法能否被重写和重载?构造方法不能被重写但是能被重载。3、”==”和equals方法究竟有什么区别?==和equals都可以比较地址。==是运算符,equals是方法,方法可以通过重写改变其行为,如String的equals就是比较字符串内容。4、GC是什么? 为什么要有GC?GC是垃圾收集的意思(Gabage ...
2019-01-26 19:10:48
973
1
原创 使用Android Studio创建 Live Templates模板
1.Settings->LiveTemplates2.点击右侧加号添加模板,添加组或者单个模板3.比如,添加一个单例其中:abbrevlation:模板的缩写,写代码时写缩写就会提示出来description:模板注释template Text:最终写在编辑器上的代码。valuesvaluesvalues 用xxx代表生成代码后光标会停留在该位置例子:private ...
2019-01-26 17:44:07
338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人