Android
文章平均质量分 51
韩老九
在有限的生命里,做自己认为有意义的事。
展开
-
Android仿 美团 / 饿了么,店铺详情页功能
UI有所不同,但功能差不多。原创 2023-11-25 02:08:22 · 1534 阅读 · 4 评论 -
Android自定义 View惯性滚动效果(不使用Scroller)
使用VelocityTracker(速度跟踪器),实现Android自定义 View惯性滚动效果,不再使用传统的Scroller、computeScroll 方式。原创 2023-11-10 00:25:38 · 1026 阅读 · 0 评论 -
Retrofit2 + Hilt + MVVM + 协程 + Paging3 + SmartRefreshLayout 整合 使用
Kotlin + Android 框架 + Jetpack相关库 + MVVM 整合 使用。2、Retrofit2 + Hilt + MVVM + 协程3、Retrofit2 + Hilt + MVVM + 协程 + Paging3 + SmartRefreshLayout。原创 2024-01-11 01:20:35 · 526 阅读 · 0 评论 -
Execution failed for task ‘:app:kaptDebugKotlin‘.> A failure occurred while executing org.jetbrains
Execution failed for task ‘:app:kaptDebugKotlin‘.> A failure occurred while executing org.jetbrains原创 2024-01-11 01:19:46 · 825 阅读 · 0 评论 -
Kotlin 协程 supervisorScope {} 运行崩溃解决
简单介绍函数,它用于创建一个使用了 SupervisorJob 的 coroutineScope,该作用域的特点:抛出的异常,不会 连锁取消 同级协程和父协程。看过很多文档的使用,我照抄一摸一样的代码,运行就崩溃,最后找到了解决方法,应该是kotlin版本更新做过改动,当前我使用的是。原创 2024-01-09 16:21:20 · 818 阅读 · 4 评论 -
Retrofit2 + Hilt + MVVM + RxJava3 + Paging3 + SmartRefreshLayout 整合 使用
Java + Android 框架 + Jetpack相关库 + MVVM整合 使用。1、Retrofit2 + Hilt + MVVM2、Retrofit2 + Hilt + MVVM + RxJava33、Retrofit2 + Hilt + MVVM + RxJava3 + Paging3 + SmartRefreshLayout4、Retrofit2 + Hilt + MVVM + Guava + LiveData + Paging3 + SmartRefreshLayout原创 2024-01-09 16:20:15 · 478 阅读 · 0 评论 -
Android MVVM 写法
Model:负责数据逻辑View:负责视图逻辑ViewModel:负责业务逻辑持有关系:1、ViewModel 持有 View2、ViewModel 持有 Model3、Model 持有 ViewModel辅助工具:DataBinding执行流程:View ==> ViewModel ==> Model ==> ViewModel ==> View在MVVM中,修改了数据,视图会自动更新相关数据,这个自动通知View更新的功能,由DataBinding完成。原创 2023-12-30 00:14:19 · 938 阅读 · 0 评论 -
Android MVC 写法
Model:负责数据逻辑View:负责视图逻辑Controller:负责业务逻辑持有关系:1、View 持有 Controller2、Controller 持有 Model3、Model 持有 View辅助工具:ViewBinding执行流程:View ==> Controller ==> Model ==> View/*** 控制器接口 负责业务逻辑*/// 持有model/*** 这些都是方法,都是由 View 调用的*/// 监听输入文本事件,通知 Model。原创 2023-12-30 00:13:28 · 806 阅读 · 0 评论 -
Android MVP 写法
Model:负责数据逻辑View:负责视图逻辑Presenter:负责业务逻辑持有关系:1、View 持有 Presenter2、Model 持有 Presenter3、Presenter 持有 View4、Presenter 持有 Model辅助工具:ViewBinding执行流程:View ==> Presenter ==> Model ==> Presenter ==> View/*** 代理接口 负责业务逻辑*/// 持有 View// 持有 Model。原创 2023-12-30 00:13:01 · 674 阅读 · 0 评论 -
DataBinding @BindingAdapter 注意事项
BindingAdapter 是根据id来全局搜索的,作用域全局,如果出现重名,就会将 后找到的。案例:最终使用的是 TestB 中的 loadImage2。原创 2023-12-10 15:23:47 · 143 阅读 · 0 评论 -
Android TextView 超出省略失效 解决方法
水平方向,TextView 又使用layout_weight(权重)情况下出现这种问题,最后将。layout_width从 0dp 改为 1dp。原创 2023-12-08 16:13:52 · 435 阅读 · 2 评论 -
Android 等待view 加载布局完成 (包括动态生成View)
在实际开发中,有很多组件需要根据数据,动态生成,或者追加 / 减少 子view,由于View布局需要时间,此时想要获取父View的最新宽高值,要么手动测量,要么等待布局完成后再获取;ps:如果使用View树监听观察方法,只调用一次也是拿不到父View最新值宽高值的。// 初始化,确保只执行一次@Overrideif (!fistInit();});// 只执行一次的方法。原创 2023-12-08 15:20:50 · 694 阅读 · 0 评论 -
Android View的 getHeight 和 getMeasuredHeight 的区别
先简单复习一下Android View 的 绘制顺序:1、onMeasure(测量),先根据构造器传进来的LayoutParams(布局参数),测量view宽高。2、onLayout(布局),再根据测量出来的宽高参数,进行布局。3、onDraw(绘制),最后绘制出View。ps:案例中用到了dataBinding在View没有布局完成前,想要获取 宽高,使用 getMeasuredHeight / getMeasuredWidth,记得先通知系统测量;原创 2023-12-06 20:57:05 · 1454 阅读 · 0 评论 -
Android View.inflate 和 LayoutInflater.from(this).inflate 的区别
只有在实例化布局时,而又不想将view添加到父布局中,和不想丢失layoutResId布局声明的参数的情况下,它俩才会有使用区别。顺便说一下返回值,将当前布局添加到父布局中时,返回的是父布局View,反之返回的是当前布局View,这一点他们是一样的。Log.d("TAG","父布局LinearLayout:"+(view instanceof LinearLayout));// trueLog.d("TAG","当前布局TextView:"+(view instanceof TextView));原创 2023-12-06 00:56:16 · 1501 阅读 · 1 评论 -
Android Spannable 使用注意事项
Spannable样式是叠加的,所以要清除之前的样式原创 2023-11-22 23:45:11 · 482 阅读 · 0 评论 -
RecyclerView嵌套布局,导致RecyclerView复用失效 解决
NestedScrollView嵌套RecyclerView时,RecyclerView的高度是无限大,所以要将RecyclerView设置固定高度。在代码中固定的,灵活度更高。@Override// 使用NestedScrollView的高度});原创 2023-11-20 16:06:38 · 1367 阅读 · 0 评论 -
关闭RecyclerView惯性滚动,以及多个RecyclerView在嵌套滚动中的注意事项
当前RecyclerView 下拉到顶部 或者 上拉到底部时,虽然滚动列表停止了,但惯性任务并没有结束,一些特殊需求可能受到影响,需要手动停止。原创 2023-11-15 16:15:54 · 592 阅读 · 0 评论 -
Caused by: java.lang.RuntimeException: Could not inflate Behavior subclass com.xx.xx 解决
1、修改前... ...1、修改后... ...原创 2023-10-30 13:33:40 · 155 阅读 · 0 评论 -
安卓分享链接到新浪微博,不显示链接地址
原创 2020-12-25 14:28:20 · 284 阅读 · 0 评论 -
解决 ARouter 无法生成路由表,Toast提示 找不到目标路由
2、加载注解库,使用 kapt,不要用 annotationProcessor。3、分模块开发,每个需要用到的模块下面,都需要引入加载注解库。最后总结应该是:Android Studio版本过高的原因。主工程的 build.gradle,引入kapt插件库。Android Studio 版本:2022.3.1。1、先检查 项目路径,是否有中文,不要有中文;模块自身的build.gradle。ARouter 版本:1.5.2。原创 2023-10-01 23:04:37 · 668 阅读 · 0 评论 -
Android 自定义PopupWindow,实现下拉框
1、页面由ViewPager2Fragment实现;2、下拉框是基于实现;3、我使用PopupWindow实现下拉框时,发现一个问题,PopupWindow 在窗口显示的情况 下,无法直接从外部修改布局,必须先dismiss;上源码:return;... ...4、如果先dismiss再添加,属于重新创建布局,切换生硬,会出现闪烁,影响用户体验,就像这样;那就没办法了,自己实现;原创 2023-10-09 00:04:27 · 875 阅读 · 1 评论 -
Android自定义侧滑Item
【代码】Android自定义侧滑Item。原创 2023-08-09 14:05:06 · 1927 阅读 · 0 评论 -
Android自定义 可滑动、点击 按钮
【代码】Android 自定义滑动按钮。原创 2023-08-02 17:33:49 · 1093 阅读 · 0 评论 -
Android 在/sdcard/目录下,创建文件夹无效,解决方法
Android 在/sdcard/目录下,创建文件夹无效,解决方法原创 2022-05-23 13:35:06 · 2171 阅读 · 0 评论 -
jarsigner: 找不到 keystore的证书链。 keystore必须引用包含私有密钥和相应的公共密钥证书链的有效密钥库密钥条目。
本人是在打腾讯应用包,遇到这种情况正确流程方式:1、先进入jdk java/bin/目录下2、将 [你的应用.apk] 、[你的签名文件.keystore]、[腾讯空包.apk],导入进来3、cd到java/bin/目录下,输入命令jarsigner -verbose -keystore [你的签名文件.keystore] -signedjar [你的应用.apk] -digestalg SHA1 -sigalg MD5withRSA [腾讯空包.apk] [你的签名文件.keysto.原创 2021-11-17 20:21:33 · 3733 阅读 · 1 评论