- 博客(104)
- 资源 (27)
- 收藏
- 关注
原创 在Android原生项目中 创建 Flutter模块
目前Flutter对高版本Gradle并不是百分百同步,无法保证在所有高版本Gralde中都能正常使用。所以最稳妥的Android原生混合Flutter开发方案是:如果是新项目,最好直接创建Flutter项目,然后在Fluter的 android / ios目录中,写原生代码;如果是已有Android原生项目引入Flutter,注意一下原生项目的Gradle版本,如果不能降低,那就尝试使用高版本的Flutter,因为Flutter版本越高,它内嵌android的Gradle版本就越高;
2024-01-14 01:51:41 1901 1
原创 全国城市划分JSON数据 + 城市拼音首字母
客户端开发,选择地址的功能很常见,全国城市数据网上有很多,但有城市拼音首字母的很少;需求一:选择地址目录边缘有一竖排,A到Z的大写字母,这个首字母,就是城市拼音首字母,我们手指触摸,会带动列表滚动;需求二:根据拼音首字母,将城市分类显示;
2024-06-20 19:42:04 697
原创 Flutter项目开发模版,开箱即用
每当我们开始一个新项目,都会 引入常用库、封装工具类,配置环境等等,我了一些文档,将这些,得到了一个的Flutter开发模版,即使看不懂封装的工具对象原理,也没关系,,小白也可以快速开发Flutter项目。
2024-06-09 19:07:14 1512 4
原创 Flutter分模块开发、模块可单独启动、包含Provider
新建的单一Flutter项目,打包体积为17.4MB,而事例中包含五个模块的Flutter项目,打包体积为17.9MB,体积还算合理。
2024-05-06 18:06:17 1424
原创 Flutter 事件传递简单概述、事件冒泡、事件穿透
可以把它看成视图中的手势监听组件,主要信息都在target属性中。翻译为命中测试结果,重点是它的_path集合保持着对象;重要函数介绍翻译为命中测试手势监听组件内部会调用的方法,如果返回true,会将当前手势监听组件也就是加入集合中,这只是默认规则,可以手动添加。核心代码:,加入集合中;还有查找 监听组件的顺序,是由深到浅。
2024-03-19 20:05:32 1682
原创 Flutter组件 StatefulWidget、StatelessWidget 可继承写法
学过Java的同学,应该都知道面向对象语言的三大特征,封装、继承、多态;Dart也是面向对象的语言,但是在Flutter中的很多组件都被下划线标记为私有,导致无法继承,本文将介绍一种非私有的创建组件写法。当前案例 Flutter SDK版本:3.13.2。
2024-02-02 20:49:50 1674
原创 Flutter 和 Android原生(Activity、Fragment)相互跳转、传参
本文主要讲解 Flutter 和 Android原生之间,页面相互跳转、传参,但其中用到了两端相互通信的知识,非常建议先看完这篇讲解通信的文章当前案例 Flutter SDK版本:3.13.2。
2024-01-31 19:40:21 3114 4
原创 Flutter项目正常启动,但在原生平台却启动失败,问题解决
项目场景:在Flutter项目中或在嵌入Flutter模块的Android原生项目;启动场景:在Android原生端编译或运行项目时,可能出现这个异常;
2024-01-28 23:10:46 1545
原创 Flutter App 生命周期观察监听
本文主要讲解两种 Flutter生命周期观察监听方式一:Flutter SDK 3.13之前的方式,;方式二:Flutter SDK 3.13开始的新方式,;
2024-01-27 18:40:35 1616 1
原创 Failed to connect to github.com port 443 after 75143 ms: Couldn‘t connect to server 解决
git项目 拉不下来,也push不上去;fatal: unable to access 'https://github.com/xx/xx.git/': Failed to connect to github.com port 443 after 75143 ms: Couldn't connect to server
2024-01-24 16:20:16 643
原创 Flutter 与 Android原生 相互通信:BasicMessageChannel、MethodChannel、EventChannel
BasicMessageChannel主要应用于:传输数据;MethodChannel主要应用于:通过函数处理业务逻辑;EventChannel主要应用于:一些只能由原生端API才能完成的操作,处理完后发送给Flutter;和;。
2024-01-21 00:02:18 2867
原创 Flutter 页面嵌入 Android原生 View
文章主要讲解Flutter页面如何使用Android原生View,但用到了Flutter 和 Android原生 相互通信知识,建议先看完这篇讲解通信的文章数据观察监听,Flutter使用ValueNotifier,Android原生使用LiveData,在实体数据发生改变时,自动刷新。
2024-01-21 00:01:50 2072 6
原创 Android Studio 虚拟机 Unknown Error 解决
尝试了网上很多解决方式,但很遗憾,都没效果;于是我就想啊🤔,虚拟机属于SDK的一部分,那有没有一种可能,是SDK出了问题;于是我就换了新的SDK,结果 ---- 完美解决😄。
2024-01-14 01:52:14 1043
原创 DDMS修改默认端口8700
当前操作系统为 Mac,编辑器 Intellij IDE准备工作:在IDE中的终端下,输入monitor指令 => 回车,打开DDMS1、第一步,2、第二步:修改静态端口3、第三步4、第四步:修复配置端口5、第五步 重启IDE、DDMS,如果不确定后台是否还在运行,那就重启电脑 如果还不行,重装IDE,DDMS配置好像是不变的,我就是这样成功的...
2024-01-12 00:30:12 844
原创 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 584
原创 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 1125
原创 Kotlin 协程 supervisorScope {} 运行崩溃解决
简单介绍函数,它用于创建一个使用了 SupervisorJob 的 coroutineScope,该作用域的特点:抛出的异常,不会 连锁取消 同级协程和父协程。看过很多文档的使用,我照抄一摸一样的代码,运行就崩溃,最后找到了解决方法,应该是kotlin版本更新做过改动,当前我使用的是。
2024-01-09 16:21:20 859 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 522
原创 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 1065
原创 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 892
原创 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 847
原创 DataBinding @BindingAdapter 注意事项
BindingAdapter 是根据id来全局搜索的,作用域全局,如果出现重名,就会将 后找到的。案例:最终使用的是 TestB 中的 loadImage2。
2023-12-10 15:23:47 173
原创 Android TextView 超出省略失效 解决方法
水平方向,TextView 又使用layout_weight(权重)情况下出现这种问题,最后将。layout_width从 0dp 改为 1dp。
2023-12-08 16:13:52 547 2
原创 Android 等待view 加载布局完成 (包括动态生成View)
在实际开发中,有很多组件需要根据数据,动态生成,或者追加 / 减少 子view,由于View布局需要时间,此时想要获取父View的最新宽高值,要么手动测量,要么等待布局完成后再获取;ps:如果使用View树监听观察方法,只调用一次也是拿不到父View最新值宽高值的。// 初始化,确保只执行一次@Overrideif (!fistInit();});// 只执行一次的方法。
2023-12-08 15:20:50 792
原创 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 1660
原创 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 1639 1
原创 RecyclerView嵌套布局,导致RecyclerView复用失效 解决
NestedScrollView嵌套RecyclerView时,RecyclerView的高度是无限大,所以要将RecyclerView设置固定高度。在代码中固定的,灵活度更高。@Override// 使用NestedScrollView的高度});
2023-11-20 16:06:38 2127
原创 关闭RecyclerView惯性滚动,以及多个RecyclerView在嵌套滚动中的注意事项
当前RecyclerView 下拉到顶部 或者 上拉到底部时,虽然滚动列表停止了,但惯性任务并没有结束,一些特殊需求可能受到影响,需要手动停止。
2023-11-15 16:15:54 777
原创 Android自定义 View惯性滚动效果(不使用Scroller)
使用VelocityTracker(速度跟踪器),实现Android自定义 View惯性滚动效果,不再使用传统的Scroller、computeScroll 方式。
2023-11-10 00:25:38 1199
原创 Caused by: java.lang.RuntimeException: Could not inflate Behavior subclass com.xx.xx 解决
1、修改前... ...1、修改后... ...
2023-10-30 13:33:40 198
原创 Android 自定义PopupWindow,实现下拉框
1、页面由ViewPager2Fragment实现;2、下拉框是基于实现;3、我使用PopupWindow实现下拉框时,发现一个问题,PopupWindow 在窗口显示的情况 下,无法直接从外部修改布局,必须先dismiss;上源码:return;... ...4、如果先dismiss再添加,属于重新创建布局,切换生硬,会出现闪烁,影响用户体验,就像这样;那就没办法了,自己实现;
2023-10-09 00:04:27 1163 1
原创 解决 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 746
原创 什么是脚本语言
简单地说就是一条条的文字命令,这些文字命令是我们可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。这种编译好的程序我们只能执行、使用,却看不到他的程序内容。是先将我们编写的程序进行编译,变成机器可识别的。目前程序执行方式有两种:二进制方式、脚本方式。
2023-08-22 12:24:28 174
solr-4.10.4 window版本亲测可用.zip
2020-03-08
solr-4.10.4 linux版本亲测可用.zip
2020-03-08
zookeeper-3.4.14 Linux版本亲测可用 .zip
2020-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人