- 博客(113)
- 收藏
- 关注
原创 3.0 compose学习:MVVM框架+Hilt注解调用登录接口
新开了一个项目之后,发现MVP框架的实现代码有点多了,就想说用MVVM框架进行实现,加上发现Hilt注解相对能够更好地解耦,学习了一下之后就想说需要应用到实际引用中,就写了个简单功能实现,虽然一个登录功能看着写的代码结构多了点,但是到后期功能不断增加之后就会发现,结构比较清晰,基本机构见图所示,使用MVVM框架实现登录效果,包括retrofit+ViewModel+Hilt注解+Compose的实现。
2025-06-24 17:54:47
498
原创 小bug记录:auto-value版本重复问题解决
项目遇到Duplicate class错误,原因是auto-value和auto-value-annotations版本不一致导致类重复。解决方法是在libs.Version.toml中屏蔽implementation(libs.androidx.room.compiler.processing.testing)的引用,避免版本冲突。该依赖对应的是Room编译器处理测试组件2.7.1版本。通过移除此依赖可消除重复类问题。
2025-06-23 10:12:39
105
原创 webView的简单实现
在compose中,没有一个直接的控件等同于xml中的WebView,只能通过AndroidView中设置WebView的形式进行实现) {// 禁用缓存// 不使用缓存,强制重新加载// 清除缓存// 启用垂直滚动条// 启用水平滚动条// 启用滚动// 启用滚动条隐藏//设置为可调用js方法// 启用缩放) {// WebView 加载完成后的回调// 加载URL// 将 WebView 嵌入到 Compose 中webView})
2025-06-20 14:14:37
368
原创 Compose中导航跳转的实现NavHost
/ 定义路由常量(推荐使用密封类)创建一个生成实际路由的方法,替换占位符// 创建一个实际路由的方法,替换占位符id// 创建一个实际路由的方法,替换占位符 fun createRoute(id : String) = "detail/ $ id " } }在 NavHost 中定义可组合的屏幕,包括带参数的屏幕// 详情屏幕(带参数)// 可选:设置参数是否可为空,默认值等// 从参数中获取id: "" // 提供默认值防止空。
2025-05-30 17:39:05
399
原创 Compose仿微信底部导航栏NavigationBar :底部导航控制滑动并移动
本文介绍了使用Jetpack Compose实现底部导航栏与页面滑动切换功能的方法。采用Material 3的NavigationBar替代BottomNavigation,配合HorizontalPager实现页面切换效果。主要步骤包括:添加依赖、创建数据类定义导航项、建立共享Pager状态同步页面索引与标题、使用协程处理平滑滚动,并通过Scaffold布局将NavigationBar与HorizontalPager结合。最终效果支持点击导航项或左右滑动切换页面,并可通过颜色变化直观显示当前选中状态。
2025-05-30 16:40:49
730
原创 JetpackCompose基础学习2.2
/ 1. 添加依赖:implementation(“io.coil-kt:coil-compose:2.4.0”)value 中的类型可以是Int,String,Boolean等基础数据类型。// 加载 res/drawable 或 res/mipmap 中的图片。// 文件需放在 src/main/res/raw/ 目录下。// 文件需放在 src/main/assets/ 目录下。在Compose中记录状态,对于列表的实现;而其他基础类型记录状态可以简单实现,如下所示。// 2. 代码实现。
2025-05-19 14:16:22
340
原创 Jetpack Compose 基础组件学习2.1:Surface
使用icon的时候需要注意是,Icon中的tint属性是默认的,Compose 的 Icon 组件默认会应用 LocalContentColor,如果未明确指定 tint 参数,可能会覆盖原有颜色。Surface是平面的意思,一般是作为底层页面背景或者自定义背景实现时候进行使用,将很多的组件摆放在这个平面中,可以通过Surface自定义平面的边框,圆角,阴影和颜色等。ImageBitmap:位图对象,可以显示 JPG,PNG 等格式的图标。Icon的使用,可以加载位图和矢量图,分别有三种方式进行加载。
2025-04-25 16:55:02
328
原创 recyclerview嵌套,实现水平方向联合滑动
在Android中没有控件可以直接展示表格,但是有的时候又需要构建类似于表格的布局,通过RecyclerView直接嵌套实现表格,但是需要实现嵌套RecyclerView的子项实现水平方向联动滑动的效果比较麻烦,接下来看一下如何实现。在SyncHorizontalScrollRecyclerView中添加滑动监听,在OnScrollListener中进行同步滑动// 同步滚动组(所有需要联动的RecyclerView)init {
2025-04-10 17:06:03
738
原创 Android免费实现excel文件(简单)转为PDF文件
前言:在Android中,对于excel文件无法进行直接展示,只能通过其他方式进行间接展示,免费的相对来说比较复杂,如果只是个人使用的话或者可支持付费商用使用的话,推荐使用进行实现,如果是简单的表格可以使用的形式进行实现。
2025-04-09 08:56:08
646
原创 Jetpack Compose 基础组件学习2.0
之前学习了Compose的布局,对XML布局中常见的布局有了一定的了解,接下来了解具体的控件,学习Text组件的使用。同样的是,学习compose博物馆中总结,在既有的基础上进行学习,将不懂的知识点进行梳理,或者版本升级后的修改进行记录。
2025-04-07 16:03:59
700
原创 Compose组件转换XML布局1.0
在JetPack Compose博物馆中,对于compose的讲解较为详细,我这篇笔记主要是记录自己不懂和不理解的知识点,可能会重复,也可能有其他的,学习Compose布局一般都是从传统XML布局中进行转换的,接下来开始学习不同布局的Compose组件。直接调用组件LazyVerticalGrid既可以完成实现columns = GridCells.Fixed(2), // 2列) {Card() {Text(// 在父布局中调用Column {// 其他内容...传统布局。
2025-04-03 15:00:14
1184
原创 12.1 Android中协程的基本使用
sealed 关键字sealed 关键字用于定义一个密封类(sealed class),用于控制子类的个数,只接受子类在密封类的同一个文件中声明,或者作为密封类的嵌套类。有助于改进when表达式,当使用密封类的时候,编译器会确保when表达式覆盖所有可能得子类,如果没有覆盖的话,则会出现报错的提醒,这有助于提高代码的健壮性和可维护性。
2025-02-19 11:28:46
873
原创 unity 0基础自学2.2:射线与button UI的使用
设置脚本,对于多个按钮来说,将脚本附加到Canvas,并在选中button的情况下,查看Inspector中的OnClick,将点击按钮执行的事件添加其中。使用手柄时,对于右手按钮按键可以直接实现按钮的点击动作,下面脚本是为了测试手柄射线与UI的交互,同时测试按键中的其他按钮,下列以X按键为例。选中后,如下图所示,right-x,forward-z,up-y这三个UI控件为button,在button的上一级为Canvas。2、创建button UI效果。
2025-02-12 10:07:37
420
原创 unity 0基础自学2.1:unity 中button的各类状态
在Inspector中可见,对于button来说,不同的按钮状态呈现不同的颜色,如下图所示,共5种颜色。①NormalUI控件正常情况的状态高亮模式:当射线与UI交互时,呈现为高亮模式,射线变成白色。鼠标置于UI上方时所处的状态③Pressed鼠标左键长按状态④Selected选中状态,比如鼠标点击离开后,⑤Disabledbutton设置为不可点击,不可选择的状态。
2025-02-12 09:34:01
1544
原创 鸿蒙1.2:第一个应用
project name 为项目名称,建议使用驼峰型命名Bundle name 为项目包名Save location 为保存位置Module name 为模块名称,即运行时需要选择的模块名称,见下图查看模块名称,并选择。
2024-12-30 16:05:50
486
原创 鸿蒙1.1-环境搭建(按照官网文件走,最新版简单搭建)
选择系统类型①按下Win + R组合键,打开运行对话框。②输入msinfo32,然后按Enter键。③在打开的“”窗口中,查找“处理器”项或“系统类型”行。这里会显示CPU的详细信息,包括架构类型。如果显示的是“基于x64的PC”,则表明是x64架构;如果显示的是“基于ARM的PC”,则表明是ARM架构。(1)双击下载的文件(2)接受,点击Next(3)路径自定义,也可以按照默认路径安装,点击Next(4)选择默认的安装方式即可,点击Next。
2024-12-27 14:56:49
595
原创 Android:bug记录(简单)
2、在使用Toolbar的theme中需要使用android:Theme.Material.Light.NoActionBar的子项,需要实现的item为windowActionBar,将其设置为false,因为windowActionBar与Toolbar两个控件实现的同一个功能效果。1、activity继承AppCompatActivity,使用theme需要为Theme.AppCompat的子项。重新定义theme并修改activity中的theme。3、两者之间存在冲突,需要重新定义。
2024-12-27 13:50:34
356
原创 1.1 android:监听并处理返回事件
在Android开发过程中,默认执行返回事件是结束当前界面,返回上一个界面,没有任何提示,但用户可能会误操作,这时出现一个提示界面对用户较为友好,接下来,让我们探究返回事件的处理。
2024-12-12 10:04:40
1085
原创 1.2 android中树结构列表(使用recyclerView实现)自定义+文件路径
【代码】20241121 android中树结构列表(使用recyclerView实现)
2024-11-21 16:21:18
559
原创 PictureSelector自定义路径首页不显示数据的问题
(https://github.com/LuckSiege/PictureSelector/wiki/PictureSelector-3.0-%E5%A6%82%E4%BD%95%E5%8A%A0%E8%BD%BD%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E6%BA%90%EF%BC%9F)解析。但是使用自定义路径的实现,数据加载的首页没有数据查看,切换之后就可以查看数据。selector的模块中,1、依赖导入和源码查看。见[read.md]
2024-08-19 17:33:43
304
原创 git push上不去的问题Iremote reiectedl——文件过大的问题
在新建分支的时候,发现push怎么也上传不上去,一开始觉得是权限的问题,但是尝试了各种方案都没有用,后面再仔细看了一下是文件太大了,远程拒绝推送接下来,和大家讲讲我的解决方案。
2024-08-09 14:43:40
1885
原创 error: resource style/Theme.Material3.DayNight.NoActionBar
将1.4.1修改为1.2.1。
2024-08-07 16:17:52
2126
原创 INSTALL_FAILED_BAD_PERMISSION_GROUP的问题
在android10中能够调试,但是在android13中出现INSTALL_FAILED_BAD_PERMISSION_GROUP的安装问题。
2024-07-05 08:50:20
361
原创 使用androidx.appcompat:appcompat:1.7.0无法运行的问题
把所有的版本修改为1.6.1即可(就很离谱)在gradle.properties中。
2024-07-03 14:00:15
5610
1
原创 1.0 Android中Activity的基础知识
Activity是一个应用组件,它提供了一个用户界面,允许用户执行一个单一的、明确的操作,用户看的见的操作都是在activity中执行的。Activity的实现需要在manifest中进行定义,不让会造成程序报错。
2024-06-11 21:22:52
1496
原创 7.0 android中Service的基础知识
适合执行不需要和用户交互而且还要求长期运行的任务依赖于创建Service时所在的应用程序进程默认运行在主线程当中的,不能直接执行耗时操作,需要开启子线程在service中设置一个继承Binder()的类,并在Service中创建变量mBinder为其实例。在Service中的方法onBind中返回mBinder,用于Activity与Service之间绑定。
2024-06-07 11:24:55
744
原创 Android启动动画SplashScreen,Error inflating class的问题
链接:https://developer.android.google.cn/training/wearables/apps/splash-screen?
2024-05-23 10:49:12
565
原创 wifi执法记录仪移植出现的问题
包名为generalplus.com.GPCamLib,目录必须一模一样。①在build.gradle中的defaultConfig中配置。②在build.gradle中的android中配置。
2024-05-09 09:02:18
330
原创 As(Android stdio )中找不到res和src文件的一种解决方法
1、项目右键 -> open module settings选中sources,在右侧中出现Source Folders即可
2023-10-17 14:50:28
1492
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人