- 博客(66)
- 收藏
- 关注
原创 Fragment页面的返回按钮监听
requireActivity() .onBackPressedDispatcher .addCallback(viewLifecycleOwner, object : OnBackPressedCallback(intercept) { override fun handleOnBackPressed() { Log.e("nil", "handleOnBackPressed==>>") .
2022-03-15 17:06:14
2888
原创 最小宽度适配:Smallest-width
链接:https://github.com/wildma/ScreenAdaptation博文链接:Android 屏幕适配神器ScreenMatch - 简书官方的ScreenMatch插件无法生成sw360dp的适配文件,导致当屏幕适配是360的时候,匹配的是320的文件。所以直接使用以上链接提供的修改过的插件。sw尺寸的计算规则:我们假设设备的屏幕信息是 1920 * 1080、480 dpi根据上面的规则我们要在屏幕的高度和宽度中选择值最小的一方作为最小宽度,1080 <
2022-03-08 10:51:33
4829
原创 MVVM常用易错点记录
一、在Fragment的onViewCreated中订阅Observer时。1、使用this表示Observer的生命周期和Framgent绑定。2、Fragment出栈时,并不会走到OnDestory方法,导致旧的订阅不会被清除。3、重建Framgent会再次订阅Observer。4、这样造成了Observer的重复订阅总结:应当使用Fragment的viewLifecycleOwner订阅Observer,不应当使用this替代。 data.observe(vie
2022-01-17 13:26:30
452
原创 Diagger2-Hilt 依赖注入WorkManager
根据指南提供的教程并不能有效的完成WorkMnanger的注入,因此记录本文。指南地址:Hilt 和 Jetpack 集成 | Android 开发者 | Android Developers1:引入依赖库 implementation 'androidx.hilt:hilt-work:1.0.0' kapt 'androidx.hilt:hilt-compiler:1.0.0'2:创建Work这里使用了@AssistedInject @Assisted执行辅助注...
2021-10-12 17:24:20
819
3
原创 Jetpack - Hilt基础使用
1 在项目的的build.gradle的 dependencies中添加 classpath "com.google.dagger:hilt-android-gradle-plugin:2.37"2 在具体module的 plugins 中添加 id 'dagger.hilt.android.plugin'3 在具体module的dependencies中添加 implementation "com.google.dagger:hilt-android..
2021-10-11 17:28:07
225
原创 Fragment中拦截返回键
OnBackPressedDispatcher后面再补充 onBackPressedDispatcher.addCallback(object :OnBackPressedCallback(false){ override fun handleOnBackPressed() { } })
2021-08-30 17:52:29
1088
原创 Android studio 2020.3.1中引用aar文件
在2020.3.1版本的android studio中引用aar文件将aar拷贝到app下libs目录中。然后在app的build.gradle的dependencies{}中添加引入路径implementation(files("./libs/channel_core.aar"))
2021-08-11 10:15:00
847
4
原创 androidx 依赖第三方库时,第三方库自身使用v4库,引起程序崩溃
1、描述:androidx项目接入mqtt时,引入了依赖库 implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.2' implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'2、编写好客户端运行,此时程序崩溃,报错如下。java.lang.NoClassDefFoundError: Failed resolu
2021-06-22 18:14:15
1928
6
原创 RecyclerView设置最大高度
android:layout_height="0dp" app:layout_constraintHeight_default="wrap" app:layout_constraintHeight_max="@dimen/x280"
2021-03-02 11:42:58
250
原创 Flutter使用Intl完成国际化
在Flutter使用Intl完成国际化的教程 https://book.flutterchina.club/chapter13/intl.html在Windows平台,严格按照其步骤会出现如下错误。1、运行指令生成l10n-arb/intl_messages.arb文件flutter pub pub run intl_translation:extract_to_arb --output-dir=l10n-arb \ lib/l10n/localization_intl.dart这一步..
2020-06-12 10:15:52
756
原创 aliyun镜像
maven { url 'https://maven.aliyun.com/repository/google' }maven { url 'https://maven.aliyun.com/repository/jcenter' }maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
2020-05-11 15:36:55
402
原创 Unhandled Exception: Looking up a deactivated widget's ancestor is unsafe.
一、具体错误:E/flutter ( 2631): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: Looking up a deactivated widget's ancestor is unsafe.E/flutter ( 2631): At this point the state of t...
2020-03-25 10:09:06
2452
原创 Radio更换默认颜色、未选中颜色
在Flutter中Radio属于Material Widgets组件,它只提供了修改其高亮颜色的属性,即activeColor没有提供修改默认颜色的方法。1:采用Theme组件包裹Radio,2:对ThemeData中的属性设置值。ThemeData(unselectedWidgetColor: Color(0xFF6DD2F3))该方法适用于所有Material Widgets...
2020-03-24 10:04:28
3946
原创 VS code 配置自动保存
{"workbench.colorTheme":"OneDarkPro","vetur.format.options.useTabs":true,"editor.fontSize":14,"editor.tabSize":3,"files.associations":{"*.vue":"vue"},"eslin...
2020-01-02 17:56:35
795
原创 React Native_环境编译
官方环境搭建一、两种方式运行程序1、指令运行:react-native run-android。运行结果如下图通过指令运行结果二:直接通过android studio运行二、遇到的问题1、unable to load script.make sure you're either running a metro server。如下图所示。标题异常图像a:通过指令启动时没有...
2019-12-17 14:47:03
460
原创 Foundation-AppCompact
note:AppCompact主要用于在较低版本的 Android 系统上恰当地降级,该库可以用于支持material design用户界面交互设计,该库已经迁移到androidx该库主要包含以下4个关键类。一、ActionBar 导航栏二、AppCompatActivity 作为activity的基类。三、AppCompatDialog 窗口四、ShareAct...
2019-03-22 16:01:58
395
原创 自定义view文字居中
private fun getTextPoint(metrics: Paint.FontMetrics, rectF: RectF): PointF { //计算文字高度 val th = metrics.descent - metrics.ascent //计算居中矩形的高度 val rh = rectF.bottom - rectF.top //计算文...
2018-09-27 15:19:04
489
原创 Jetpack_Architecture之Navigation内部导航
一、前言Navigation是属于Jetpack库中关于架构模块的内容之一,用于内部导航,二、注意需要AndroidStudio的版本3.2以上 Navigation,最好是只用于fragment之间的页面跳转,可以尝试用于写单activity应用。 文档:https://developer.android.google.cn/topic/libraries/architectur...
2018-09-06 14:10:33
433
原创 RecyclerView Bug:IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter的解决方案
当频繁的刷新RecyclerView数据的时候,有可能会产生这个BUG,这个BUG产生的原因是list clear之后没有及时的刷新界面引起的。经过本人测试网上说的try掉各种LayoutManager的scrollHorizontallyBy,onLayoutChildren,禁用supportsPredictiveItemAnimations是不会起作用的。如下:: @Overrid...
2018-07-16 18:28:34
399
原创 Please configure Android SDK
Android studio在项目迁移的完成之后,有可能会产生该问题。方法一:修改app的build.gradle让程序重新方法二:右键app项目-->open module settings --->点击app---》添加build tool version 选择一个version...
2018-03-14 10:30:21
3506
原创 kotlin中dagger2遇到的一些错误和方法
1、延迟初始化databinding引起了dagger2无法编译通过报错:ContributesAndroidInjector Dex archives: setting .DEX extension only for .CL解决办法:不使用延迟加载,使用局部变量。2、当使用dagger2 android的时候在application中引用的基础module提供的实例对象可以在通过AndroidI...
2018-02-11 09:52:45
2220
原创 学习Android官方MVVM组件问题
官方在最近推出四个组件,用于开发者构建MVVM构架的程序。 译文:http://blog.youkuaiyun.com/guiying712/article/details/78474177 guthub:https://github.com/googlesamples/android-architecture-components问题一: 在官方demo中采用des的形式引入第三档框架 当在普通的
2018-01-03 13:51:54
292
原创 Retrofit2 数据请求方式
服务器使用Post请求时会要求设置传入请求参数的类型。这种情况下通常需要指定参数为RequestBody,如下Call<ResponseBody> register(@Body RequestBody body)同时该参数的构造如下。针对字符串默认使用UTF_8#字符串#public static RequestBody create(@Nullable MediaType contentType
2018-01-02 15:08:58
654
原创 Kotlin使用Glide4.x
一、基础 1.1引入依赖 implementation 'com.github.bumptech.glide:glide:4.4.0' kapt 'com.github.bumptech.glide:compiler:4.3.1'//kotlin'中使用注解,生成GlideAPP1.2编写AppGlideModule@GlideModuleclass MyAppGlide...
2017-12-29 16:09:42
1294
原创 com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
当出现这个合并dex错误的时候,是由于dex文件突破64K导致。 1、解决方案 app的build.gradle的defaultConfig节点添加以下消息 defaultConfig { multiDexEnabled true //开启dex管理使得dex突破64k }2、版本低于4.4时,仍旧出出现合并dex的错误 1、添加依赖 compile 'com.a...
2017-12-26 17:25:09
1556
原创 Rxjava2-关键字解读
外文网站: http://reactivex.io/documentation/operators.html Rxjava2系列教程: http://www.apkbus.com/myspaceblog-898535.html 重要字段解读: 一、发射器常用类 Observable:普通的发射器 Flowable:有背压的发射器 Single: 是一个发射器,该发射器只会接收单一参数
2017-12-26 13:46:54
1221
原创 Koltin-let apply also run with的比较
一、具体的扩展方法public inline fun <T, R> T.run(block: T.() -> R): R = block()public inline fun <T, R> T.let(block: (T) -> R): R = block(this)public inline fun <T> T.apply(block: T.() -> Unit): T { block();
2017-12-06 18:15:43
314
原创 Lint检查选项
一、lint检查可以通过tools:ignore忽略 lint –listValid issue categories: issue id 种类 Correctness Correctness:Messages Security Performance Usability:Typography Usability:Icons Usability Accessibili
2017-12-06 14:30:52
7429
原创 Material Design-动画
一、触摸反馈 二、圆形动画(网上很多叫循环动画,我这里根据直观动画效果取名) 循环动画只有一个API,即基于ViewAnimationUtils的createCircularRevealAnimator createCircularReveal(View view,int centerX, int centerY, float startRadius, float endRadius)通过五个
2017-12-01 17:08:01
293
原创 Android Studio实用插件和常用功能
插件模块 一、android selector a:释义 一种快速创建资源文件的插件 使用方式: res右键–>new->android selecter–>选择b:截图 c:截图释义 filename:会分别在drawable drawable-v21 创建资源文件。drawable-v21中的内容会以触摸反馈的形式创建,表现在ripple标签 color 普通情况下
2017-12-01 10:51:55
212
原创 Kotlin的一些问题
一、关于匿名函数的一些问题1:inline fun String.testLambda(action:String.()->Unit){ action()}2:inline fun String.testLambda2(action:Context.()->Unit){ action()}3:inline fun String.testLambda3(action:()
2017-11-29 10:36:02
149
原创 Material Design-CoordinatorLayout
协调布局作为一个 容器与一个或者多个子View进行交互,一般在最上层,协调布局可以控制子view之间相互协作设置锚点 将view定位到锚点viewapp:layout_anchor="@id/xxx"锚点位置 值有 bottom、center、right、left、top app:layout_anchorGravity设置行为 app:layout_behavior默认的行为有:滚动行
2017-11-28 17:44:03
169
原创 ViewGroup和LayoutMnager自定义的相似之处
1、LayoutManager的流程 实现generateDefaultLayoutParams方法 主体方法:onLayoutChildren 具体方法 detachAndScrapAttachedViews 回收view到ScrapCache空间,这是为了防止重复加载控件 getViewForPosition 获取子view addView添加子view measu
2017-11-09 10:40:41
147
原创 ViewGroup-自定义控件
自定义ViewGroup这篇文章是针对自定义LayoutManager来写的,提取出相关自定义的相同点。所有的自定义都可以归结为在父控件里面放置子控件。 一、继承类:ViewGroup 继承之后需要实现构造,由于一般是在xml中引入所有需要实现以下构造 ViewGroup(Context context, AttributeSet attrs)二、需要实现generateLayout
2017-11-09 10:26:15
207
原创 Recyclerview-自定义LayoutManager
一、继承类:RecyclerView.LayoutManager() 二、必须实现的方法:generateDefaultLayoutParams 创建一个普通的layoutparams即可 RecyclerView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
2017-11-06 16:38:35
391
原创 小问题合集
一、当使用cardview时,直接将cardview当做根节点,在自定义RecyclerView的LayoutManager,测量结果将会存在偏差,当使用普通布局包裹cardview时可以正确测量。 getDecoratedMeasuredWidth和getDecoratedMeasuredHeight出现测量错误
2017-11-06 15:39:54
192
原创 自定义动画笔记
一、ObjectAnimator中ofFloat、ofInt方法中的propertyName参数有哪些值 * propertyName: 关键词 指的是在动画的实施对象中必须要有一个 "set关键词()"的方法,该关键词也是动画实施对象的一个属性。 比如某view有一个setColor()方法,"color"为某view的一个属性。在动画实施过程中,会不停的调用这个se
2017-10-16 15:32:54
315
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人