- 博客(77)
- 收藏
- 关注
原创 【Android】 连接wifi时,强制应用使用流量
Android强制应用在Wi-Fi下使用移动数据的方法:1)全局绑定进程 - 通过ConnectivityManager.bindProcessToNetwork()将整个应用绑定到蜂窝网络;2)精准控制 - 为OkHttp等网络库配置特定Network对象,需额外设置socketFactory和自定义DNS解析。两种方法都要求Android 5.0+,使用时需注意及时解除绑定释放资源。方法二实现中发现需要额外配置DNS才能正常工作。
2025-08-22 21:30:00
462
原创 【Flutter】Container设置对齐方式会填满父组件剩余空间
Flexible嵌套Container时,对齐方式的设置会影响布局效果。当注释掉Container的alignment:Alignment.center时,蓝色Container会填满Column的剩余宽度;不注释时,文本会在Container内居中显示,但Container宽度仍会撑满。这种差异展示了Flexible如何控制子组件在Flex布局中的尺寸分配行为。
2025-08-21 15:48:40
215
原创 Flutter 局部刷新方案对比:ValueListenableBuilder vs. GetBuilder vs. Obx
Flutter局部刷新方案对比摘要 ValueListenableBuilder、GetBuilder和Obx是Flutter三种UI局部刷新方案。ValueListenableBuilder是Flutter原生方案,基于ValueNotifier实现响应式更新,无依赖但需手动管理生命周期。GetBuilder属于GetX的命令式方案,需手动调用update()触发重建,适合复杂场景。Obx是GetX的响应式方案,通过.obs自动追踪依赖,代码最简洁但依赖GetX框架。综合对比,Obx在开发效率上完胜,Va
2025-08-07 21:09:35
810
原创 Flutter 三棵树
Flutter框架的核心机制围绕"三棵树"展开:Widget树作为不可变的配置蓝图,Element树负责对比更新和生命周期管理,RenderObject树执行布局、绘制和命中测试。Widget声明UI需求,Element对比新旧Widget决定复用或重建,RenderObject处理具体渲染。当布局改变时,若Widget类型不同(如Column变Row),会触发Element和RenderObject的销毁重建;若仅属性变化(如文本修改),则复用现有节点仅局部更新。这种分层设计配合Key
2025-08-07 20:03:08
941
原创 Flutter报错...Unsupported class file major version 65
flutter项目运行报错> BUG!环境:gradle:7.4。
2025-08-07 20:00:01
236
原创 【Flutter】双路视频播放方案
双路视频播放(Dual-Video Playback),从字面上理解,就是指在一个屏幕或应用界面上,同时解码和渲染两个独立的视频流。可以把它想象成有两列火车在两条并行的轨道上同时行驶,你可以同时看到两列火车的状态。这两个视频流可以有多种关系和布局方式。
2025-08-01 21:00:00
770
3
原创 【Flutter】 使用table_calendar: ^3.2.0 星期标题栏被遮挡问题解决方法
摘要:在使用TableCalendar时,可以通过设置daysOfWeekHeight参数来调整星期标题栏的高度。本文建议将该值设为30,以优化日历控件的显示效果。这个简单的配置项调整能有效改善界面布局,使星期标题栏获得更明确和合理的空间分配。开发者可根据实际需求灵活调整此参数值,同时还可结合其他配置项来完善日历控件的整体外观和功能。
2025-07-22 21:00:00
128
原创 【Win10】新建系统变量的按钮忽然灰了解决方法
在尝试了多种网上搜索到的方法均无效后,通过以管理员权限运行命令提示符,成功打开了新建系统变量的页面,并顺利完成了系统变量的新建。这一步骤可能解决了之前无法创建系统变量的问题,尽管不确定是否适用于所有情况,但在特定环境下确实有效。
2025-05-09 09:00:00
385
原创 【Flutter】数据库实体类构造函数加密注意事项
假设:account = a;password=b;a加密后n0yvxAHkx5kZH3yB9brlsQ==
2025-03-14 19:30:00
193
原创 【Flutter】第一次textEditingController.text获取到空字符串
在initState()方法里面调用了一个async方法获取数据库数据,在async里面初始化TextEditingController并给TextEditingController.text赋值。原因分析:通过打印日志可以得知,initState()方法执行后,还没执行完async方法就走到了build()方法,导致textEditingController.text获取到的是空字符,甚至TextEditingController不能保证非空;刷新状态,不然显示不了值。
2025-03-10 20:00:00
350
原创 【Flutter】正方形的Dialog
以为很简单,showDialog,里面再使用Dialog就行,结果Dialog有最小宽度限制,这个最小宽度比UI的宽度还要大,使用UnconstrainedBox又各种包裹Container还是不行,最终决定放弃Dialog,直接使用Container。
2025-03-04 20:15:00
437
原创 Kotlin 协程与Flow
协程可以理解成线程中的线程,进程跟线程的关系,差不多就是线程跟协程的关系。一个进程里可以有多个线程,一个线程崩了整个进程不会崩;一个线程里可以有多个协程,一个协程崩了整个线程不会崩;当然,这只是简单的理解,系统的最小执行单位还是线程,协程的并行也只是线程的切换。
2025-02-27 13:56:44
505
原创 【Jetpack Compose】Color.kt 文件左侧没有显示颜色解决方法
跟着B站学项目练习Jetpack Compose的时候,发现我的Color.kt左侧没有显示颜色,网络搜索也没搜处理,只好出Plugin里输入color自己搜插件。看到这个安装即可在编辑器边缘显示颜色。
2025-02-11 21:00:00
256
原创 [repo] No such file or directory: ‘/xxxx/.repo/manifests/.git/HEAD‘error: manifest missing or unrea
【解决方法】:在~/.ssh/config添加这一行(config之前已经配置了Host跟User)。【原因分析】:缺了HEAD这个文件,至于为什么缺没有分析。【解决方法】:新建一个文件夹,重新运行repo命令。
2024-12-03 22:00:00
995
原创 【Android】默认应用程序与特定权限(读取通话记录和发送短信等)
应用必须先请求成为默认处理程序,然后才能请求与成为该处理程序相关的权限。例如,应用必须先请求成为默认短信处理程序,然后才能请求。默认应用程序就是在设置里设置的默认应用。记录新学到的知识点。
2024-10-25 22:00:00
379
原创 【SVN】clean up 显示database is locked, executing statement BEGIN IMMEDIATE TRANSACTION:
update的时候显示。
2024-08-28 22:00:00
382
原创 【Flutter】 webview_flutter避坑
webview_flutter没有SSL Error接口,也就是说等你的网页出现SSL 错误的时候这个插件无法捕捉处理,除非你改它的源码。下面这段是webview_flutter官网的例子,它有onHttpError、onWebResourceError、但没有任何捕捉 SSL 错误的选项,我曾经不信邪找了很久。通过日志发现可以取巧提醒SSL Error , SSL Error不会走onPageStarted,可以在这里加flag,然后在pageFinished的时候做判断即可。
2024-07-16 21:00:00
1015
原创 [Flutter] Android Studio pub get 不起作用
找到这些库在本地找到的地址,我的在C:\Users\用户名\AppData\Local\Pub\Cache\hosted\pub.dev下,如果找不到就随便进去一个库,然后右键copy path,就能看到这些库在本地的地址,找到webview_flutter目录,删除,再回到Android Studio pub get就好了。中试过flutter clean,到设置里打开开发者模式啥啥的,都没用。最后是删除这个库在本地的缓存解决的。
2024-07-09 11:16:31
1055
原创 【Flutter】 TextField限制长度时, 第三方手写输入法、ios原始拼音输入法输入被吞问题
TextField限制长度时, 当你的输入字符长度已经到了最大值-1时,使用第三方手写输入法或者ios原生拼音输入法输入liang(什么拼音都行,这里只是举例),输到i那么li都会消失。
2024-06-04 19:36:28
1228
原创 【Java 8】Lambda: mAA::get 返回函数式接口实例
重点在于mProviders.put(AA.class,mAA::get),看了很久都没看懂,mAA::get返回的不是mAA本身吗,为什么能转化为LazyDependencyCreator存储在map里。双冒号有方法调用的作用我是知道的,在函数式接口里它能省略方法调用是第一次知道,记录一下,另外,感觉LazyDependencyCreator接口很多余,下面这样不也可以吗。涨知识了,在函数式接口的情景里,原来使用双冒号是能省略方法调用的,具体原理不知道,反正就是能这样用。
2024-05-08 11:13:40
372
1
原创 【Flutter】Android12 底部手势导航栏挡住一部分控件解决方法
bug来源:底部控件在其他Android版本上没有被遮挡,只有在Android12机器上会被设备底部手势控件挡住。解决方法:在Scaffold 下在添加一个 SafeArea包住别的控件即可。
2024-04-11 16:10:23
576
1
原创 【SVN】clean up报错:Cleanup failed to process the following paths 解决方法
报错来源:代码更新有一个文件既不能接受自己的也不能接受别人的,只能取消,再提交提醒clean up,随后报标题错误。解决方法:参考。
2024-04-09 22:45:00
4678
1
原创 【Flutter】 search_page使用心得
我在search_page中传入的builder是带有checkbox的ListTile,当我点击checkbox的时候,checkbox应该改变它的状态,然而search_page中checkbox并没有变化。解决方法:复制search_page的代码,在它的buildSuggestions方法最后的return的控件那里添加get的Obx或者是其他更新本页面的方法就行。以上就是search_page地址。使用方法跟具有哪些功能网页都有,这篇文章主要讲我在使用这个插件时遇到的坑。坑1:不能自己刷新界面。
2024-03-13 22:15:00
1343
原创 【Android】 ClassLoader 知识点提炼
除了系统提供的类加载器,还可以自定义类加载器,自定义类加载器通过继承java.lang.ClassLoader 类的方式来实现自己的类加载器,Extensions ClassLoader 和 AppClassLoader也继承了java.lang.ClassLoader 类。
2024-03-12 21:30:00
1157
原创 【flutter】报错 cmdline-tools component is missing
在flutterSDK目录下,双击flutter_console.bat,调出命令行。输入flutter doctor,如果第三个诊断为[x],报cmdline-tools component is missing错(我这已经修改好了,所以是勾了),那就可以用以下方法解决。
2024-02-05 21:15:00
4319
1
原创 【git】记录一个git error解决方法
因为代码编写事件有点长,编写好之前有人提交过代码,而我这边没有git pull,所以提交失败了,然后pull的时候,提醒:error: The following untracked working tree files would be overwritten by merge:Please move or remove them 大概是当前状态下有些未被追踪的文件,请求你将它们移开或删除,但是我跟踪它后面说的文件,发现这些文件在本地已经不存在了(可能是我前面的瞎操作删的)。网上别的方法也试过,但只有下面
2024-01-25 22:30:00
523
原创 【Android 10】 BatteryController
BatteryStateChangeCallback就是抽象观察者,它是BatteryController的内部接口,里面有两个方法,看方法名字就可以知道一个是监听level改变的(例如电量低于15%是低电量),onPowerSaveChanged方法就是监听目前电池省电模式有没有改变。图应该挺清晰的,BatteryControllerImpl就是被观察者,BatteryControllerImpl重写了CallbackController的两个方法用于添加或移除观察者。
2024-01-22 22:30:00
704
原创 【Android】TypedArray的使用
这里的app:xxx取决于你在第二部给这个属性起的名字,如果你起的是barColor,那么当你在布局文件中给RoundSeekbarView添加属性时就会弹出barColor的提示,这就是declare-styleable的name也一定要是RoundSeekbarView的意义。
2024-01-22 22:15:00
923
原创 【Android】自定义View onDraw()方法会调用两次
我在构造函数中设置的画笔颜色是红色,但是实际画出的线是黑色的(画笔默认颜色是黑色),分析了一下发现是paint.reset()的问题,reset就是画笔重置设置嘛,如何它就会变成默认的黑色,这个我懂,可是为什么会把线的颜色改了?画线的代码明明在reset的前面。
2024-01-18 21:00:00
786
原创 【Android】 ConstraintLayout实操
其实之前也小小的学过一波constraintlayout,不过因为用线性布局跟相对布局习惯了,加上使用constraintlayout的时候不熟练,控件经常没有出现在预想的位置,后面就没用了。这里只记录在官网学习的时候遇到的阻碍,官网有的就不写了。
2024-01-09 19:33:03
734
原创 Android 画一个闹钟
先上结果图(下面的代码是没有数字左下角的点的,这个点就是为了提醒文字的(x,y)是它的左下角)画闹钟其实就是自定义一个View,重写它的onDraw()我创建了重写onDraw()方法如下:须知:画布的(0,0)在左上角。画外面的大圆圈就不说了,这个圈可画可不画。其中x,y是圆心。
2023-12-20 10:51:41
546
原创 Android 记录一些Framework开发的命令
1. "source build/envsetup.sh" (source可以用 . 代替,即". build/envsetup.sh")adb push 本地framework-res.apk地址 /system/framework/framework-res.apk。4. "development/tools/idegen/idegen.sh",并继续等待,这个过程可能比较长。在导入项目前,手动对"android.iml"文件进行一下修改,可以使我们导入的时间尽可能的缩短一些。
2023-12-07 14:08:03
701
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人