
Android Jetpack
文章平均质量分 74
Jetpack应用指南学习笔记
淡淡的香烟
坚持是一件不容易的事情,开发是一条任重而道远的路
展开
-
Android四种方式刷新View
今天的使用场景很特殊,一般不会遇到,不过既然遇到了,就要找到问题原因解决掉问题,当然解决方式有很多,这里看个人,没有说一定要使用哪种方式,由于是demo所以没有做主题切换的操作,view也是直接显示的,感兴趣的同学可以自己尝试一下再view隐藏时切换主题会不会有此问题,打卡收工,祝大家新年快乐.原创 2025-01-19 16:57:50 · 1175 阅读 · 0 评论 -
Android使用DataBinding和Merge引发的血案
该属性主要来指定父级view-tag;在自定义组合布局时,配合 标签,可以消除多余的层级。如,定义了一个布局,它的根 布局标签是 LinearLayout;要把该布局整体用一个自定义view来关联操作。view中,通常有一句:LayoutInflater.from(context).inflate(R.layout.xxx, this, true)注意最后一个参数,属性为true:即 将inflate出的布局,attachToRoot 到 this。原创 2024-12-31 23:55:20 · 916 阅读 · 0 评论 -
Android实现RecyclerView边缘渐变效果
是指在RecyclerView中实现淡入淡出效果的边缘效果。通过这种效果,可以使RecyclerView的边缘在滚动时逐渐淡出或淡入,以提升用户体验。原创 2024-12-15 23:00:14 · 734 阅读 · 0 评论 -
Android中WorkManager的简单使用
Service和WorkManager各有优缺点,选择使用哪一个取决于具体的需求场景。如果需要依赖应用内部运行的后台任务,且任务不涉及耗时操作,可以选择Service;如果需要延迟执行或应用退出后仍需运行的任务,且希望减少开发工作量,可以选择WorkManager。原创 2024-12-08 22:54:21 · 2674 阅读 · 0 评论 -
Android使用协程实现自定义Toast弹框
最近有个消息提示需要显示10s,刚开始使用协程写了一个shoowToast方法,传入消息内容、显示时间和toast显示类型即可,以为能满足需求,结果测试说只有5s,查看日志和源码发现Android系统中Toast显示有2种类型Toast.LENGTH_SHORT`和`Toast.LENGTH_LONG,分别代表Toast消息显示的时间为短暂(大约2秒)和长时间(大约3.5秒).原创 2024-10-21 23:53:36 · 507 阅读 · 0 评论 -
Android使用Flow封装一个FlowBus工具类
做过Android的同学应该都使用过EvenutBus、Rxbus、LiveDataBus、LiveData等,这些第三方不仅要导入依赖包,而且还要注册和取消注册,使用起来非常麻烦,稍不注意就导致内存泄漏,自从接触了Flow、SharedFlow之后感觉使用起来方便多了,于是产生了一个封装通用事件工具类的想法,直接上代码.原创 2024-09-23 01:21:11 · 969 阅读 · 0 评论 -
Android中简单封装Livedata工具类
之前讲解过livedata和viewmodel的简单使用,也封装过room工具类,本文是对livedata的简单封装和使用,先是封装了一个简单的工具类,然后实现了一个倒计时工具类的封装.原创 2023-08-07 00:13:52 · 685 阅读 · 0 评论 -
JetpackCompose从入门到实战学习笔记14——Coli的简单使用
Coil 是一个 Android官方出的配合Jetpack的图片加载库,通过 Kotlin 协程的方式加载图片。原创 2023-04-25 22:43:23 · 2175 阅读 · 0 评论 -
JetpackCompose从入门到实战学习笔记13——Compose中实现简单瀑布流
LazyGrid包含两种控件:LazyVerticalStaggeredGrid和LazyHorizontalStaggeredGrid。两者内部均由LazyLayout实现(包括LazyColumn和LazyRow也是由LazyLayout实现的)。原创 2023-04-08 22:24:40 · 1145 阅读 · 0 评论 -
JetpackCompose从入门到实战学习笔记12—在Compose中简单使用动画
Jetpack Compose 提供了一些功能强大且可扩展的 API,可用于在应用界面中轻松实现各种动画效果。本文档将介绍如何使用这些 API,以及根据您的动画场景应使用哪种 API。原创 2023-04-05 18:31:48 · 846 阅读 · 0 评论 -
JetpackCompose从入门到实战学习笔记11——在compose中使用DropdownMenu
下拉列表菜单,菜单具有一个,它是生成菜单的元素。例如一个图标,点击该图标可以触发菜单。DropdownMenu的内容可以是DropdownMenuItems,也可以是自定义内容。原创 2023-04-01 23:35:44 · 1098 阅读 · 0 评论 -
JetpackCompose从入门到实战学习笔记10——Lottie在compose中的简单使用
Lottie动画现在已经是很多应用中必备的动画,而Jetpack-Compose也是谷歌推出的代码式编写UI的新框架,一旦它们遇到一起了,又会产生怎样的碰撞呢?又会产生怎样的火花呢?原创 2023-03-27 12:10:38 · 493 阅读 · 0 评论 -
JetpackCompose从入门到实战学习笔记9—Scaffold脚手架的简单使用
JetpackCompose从入门到实战学习笔记9—Scaffold的简单使用。原创 2023-03-01 18:58:43 · 685 阅读 · 0 评论 -
JetpackCompose从入门到实战学习笔记8—ConstraintLayout的简单使用
Compose 中的 ConstraintLayout是一种布局,让您可以相对于屏幕上的其他可组合项来放置可组合项。它是一种实用的替代方案,可代替使用多个已嵌套的RowColumnBox和这种做法。在实现对齐要求比较复杂的较大布局时,很有用。在以下情况下,考虑使用ColumnRow在 View 系统中,建议使用来创建复杂的大型布局,因为扁平视图层次结构比嵌套视图的效果更好。不过,这在 Compose 中不是什么问题,因为 Compose 能够高效地处理较深的布局层次结构。原创 2023-02-11 22:04:42 · 1112 阅读 · 0 评论 -
JetpackCompose从入门到实战学习笔记7—Dialog的简单使用
AlertDialog组件是Dialog组件的更高级别的封装,同时遵循着Material Design 设计标准。它已经帮我们定位好了标题、内容文本、按钮组的位置。原创 2023-02-09 11:40:49 · 1110 阅读 · 0 评论 -
JetpackCompose从入门到实战学习笔记6——手势的简单使用
Compose 提供了多种 API,可帮助您检测用户互动生成的手势。原创 2023-01-02 23:54:54 · 539 阅读 · 0 评论 -
JetpackCompose从入门到实战学习笔记5——TextFixed的简单使用
JetpackCompose从入门到实战学习笔记5——TextFixed的简单使用。原创 2023-01-01 00:00:08 · 440 阅读 · 0 评论 -
JetpackCompose从入门到实战学习笔记4——Image的简单使用
您可以使用Image可组合项(和)中的属性来自定义图片。您还可以使用现有的 Modifiers来将不同的效果应用到Image。修饰符可用于,而不仅仅是Image可组合项,而和是Image可组合项上的显式参数。原创 2022-12-31 00:00:24 · 394 阅读 · 0 评论 -
JetpackCompose从入门到实战学习笔记3——Text的简单使用
JetpackCompose从入门到实战学习笔记3——Text的简单使用原创 2022-11-28 21:26:14 · 837 阅读 · 0 评论 -
JetpackCompose从入门到实战学习笔记2——Modifier的简单使用
Modifier的简单使用原创 2022-11-27 23:03:08 · 615 阅读 · 0 评论 -
JetpackCompose从入门到实战学习笔记1—在compose中简单使用webview
在compose中简单使用webview原创 2022-11-19 23:09:46 · 865 阅读 · 0 评论 -
AndroidJetpack应用指南学习笔记13--Paging的简单使用
Paging 的出现,就是用作列表的分页加载。其实现在已经有非常多成熟高效的开源列表加载控件了原创 2022-09-20 00:21:05 · 1478 阅读 · 0 评论 -
Android Jetpack应用指南学习笔记12--DataBinding的简单使用
Android Jetpack DataBinding的简单使用原创 2022-09-17 23:52:03 · 1151 阅读 · 0 评论 -
Android Jetpack应用指南学习笔记11使用safe args方式安全传递参数
Android Jetpack应用指南学习笔记11使用safe args方式安全传递参数原创 2022-08-21 23:01:12 · 1548 阅读 · 0 评论 -
Android CameraX适配Android11的踩坑之路
11月份Google发通知应用必须适配到30,要不然提交到google play的app不能发布更新,用户就只能使用旧版本。1.我们来看看Google的通知说明:自 2021 年 11 月 1 日起,针对 Google Play 上的应用和游戏的更新必须以 Android 11(API 级别 30)或更高版本为目标运行环境。此日期过后,您将无法上传targetSdkVersion低于 30 的新 app bundle 和 APK。请注意,Wear OS应用不受关于 API 级别 ....原创 2021-12-29 23:31:06 · 4362 阅读 · 1 评论 -
Android中StateFlow的简单使用
最近在学习StateFlow,感觉很神奇,于是记录了一下.1.简介:StateFlow是一个状态容器式可观察数据流,可以向其收集器发出当前状态更新和新状态更新。还可通过其value属性读取当前状态值。如需更新状态并将其发送到数据流,请为MutableStateFlow类的value属性分配一个新值。2.使用:@ExperimentalCoroutinesApiclass MainViewModel :ViewModel(){ private val _loginUi...原创 2021-12-25 23:07:22 · 3999 阅读 · 2 评论 -
Android中Hilt的简单使用
Android中Hilt的简单使用plugins {id ‘com.android.application’id ‘kotlin-android’id ‘kotlin-kapt’id ‘dagger.hilt.android.plugin’}//Dagger - Hiltimplementation “com.google.dagger:hilt-android:2.30”kapt原创 2021-08-26 01:08:34 · 6084 阅读 · 2 评论 -
Jetpack Compose实现简单聊天列表
JetPackCompose实现简单聊天列表原创 2021-08-13 01:10:50 · 1516 阅读 · 0 评论 -
Android Jetpack应用指南学习笔记10NavigationUi的简单使用
Fragment的切换,除了Fragment页面本身的切换,通常还伴有App bar的变化。为了方便统一管理,Navigation组件引入了NavigationUI类。1.配置环境:(根据官网的文档)要在您的项目中添加 Navigation 支持,请向应用的build.gradle文件添加以下依赖项:dependencies { def nav_version = "2.3.0" // Java language implementation implementation "...原创 2020-09-23 01:04:08 · 2474 阅读 · 2 评论 -
Android Jetpack应用指南学习笔记9Room数据库的升级
1.添加room依赖:implementation "androidx.room:room-runtime:2.2.5"annotationProcessor "androidx.room:room-compiler:2.2.5"2.指定数据库导出路径:javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schem原创 2020-09-08 00:15:58 · 1241 阅读 · 0 评论 -
Android Jetpack应指南学习笔记8Navigation(二)使用safe args传递参数
在android中,未使用safe args之前,通常我们Fragment之间传递参数是这样的:1.传递参数//未采用safe args的传递方式Bundle bundle = new Bundle();bundle.putString("user_name", "Michael");bundle.putInt("age", 30);Navigation.findNavController(v).navigate(R.id.action_mainFragment_to_secondFragm原创 2020-09-06 19:06:06 · 1771 阅读 · 0 评论 -
Android Jetpack应用指南学习笔记7之LiveData+ViewModel实现Fragment之间的通信
在AndroidJetpack应用指南学习笔记5中LiveData与ViewModel可以结合使用,ViewModel能够将数据从Activity中剥离出来。只要Activity不被销毁,ViewModel会一直存在,并且独立于Activity的配置变化,即旋转屏幕导致的Activity重建,不会影响到ViewModel。Fragment可以看作是Activity的子页面,即,一个Activity中可以包含多个Fragment,这些Fragment彼此独立,但是又都属于同一个Activity。基于这原创 2020-09-05 23:26:43 · 2092 阅读 · 3 评论 -
Android Jetpack应用指南学习笔记6之Navigation(一)基本使用
一.在Android中单个Activity嵌套多个Fragment的UI架构方式,已被大多数Android工程师所接受和采用。但是,对Fragment的管理一直是一个比较麻烦的事情,工程师需要通过FragmentManager和FragmentTransaction来管理Fragment之间的切换。这其中还包括了对应用程序的App bar的管理,Fragment间的切换动画,Fragment间的参数传递,总之,使用起来不是特别友好。为此,Android Jetpack提供的一个名为Navigatio..原创 2020-09-05 18:28:46 · 585 阅读 · 0 评论 -
Android Jetpack应用指南学习笔记5Room与LiveData+ViewModel的结合使用
1.Android JetPack学习笔记4中介绍了《Room的基本使用》。每次数据库中的数据发生变化后,我们都需要开启一个工作线程去获取数据库中的内容。这让我们觉得不方便,我们希望数据在发生变化时,我们能自动收到通知,这就是LiveData。2. LiveData通常结合ViewModel一起使用。我们知道ViewModel是用来存放数据的,因此我们可以将数据库放在ViewModel中进行实例化。但数据库在实例化的时候需要Context,而ViewModel不能传入任何带有Context引用的对象,.原创 2020-09-01 00:36:50 · 533 阅读 · 0 评论 -
Android Jetpack应用指南学习笔记4之Room的简单使用
1.Android采用Sqlite作为数据库存储。Sqlite代码写起来繁琐且容易出错,所以开源社区里逐渐出现了各种ORM(Object Relational Mapping)库。这些开源ORM库都是为了方便Sqlite的使用,包括数据库的创建,升级,增删改查等。常见的ORM有ORMLite,GreenDAO等。Google也意识到了推出自家ORM的必要性,于是有了Room。2.Room 包含 3 个主要组件: 数据库:包含数据库持有者,并作为应用已保留的持久关系型数据的底层连接的主要接入点。使.原创 2020-08-28 23:29:07 · 2511 阅读 · 0 评论 -
Android Jetpack应用指南学习笔记3之LiveData的简单使用
1.简介:LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。如果观察者(由 Observer 类表示)的生命周期处于 STARTED 或 RESUMED 状态,则 LiveData 会认为该观察者处于活跃状态。LiveData 只会将更新通知给活跃的观察者。为观.原创 2020-08-25 23:02:52 · 373 阅读 · 0 评论 -
Android Jetpack应用指南学习笔记2之ViewModel的使用
1.在页面(Activity/Fragment)很简单的情况下,通常我们会将UI交互,数据获取与处理等相关业务逻辑,全部写在页面中,但是在页面复杂的情况下,这样做是不合适的,它不符合“单一责任”原则。页面只应该负责接收用户的交互,以及将数据展示到屏幕上,相关数据应该单独存放和处理。为此,Android为我们提供了ViewModel类,专门用于存放应用程序页面所需的数据。它将页面所需的数据从页面中剥离出来,页面只需要处理用户交互,以及负责展示数据的工作。ViewModel是一个抽象类,其中只有一个方法原创 2020-08-24 22:31:23 · 646 阅读 · 0 评论 -
Android Jetpack应用指南学习笔记1之Lifecycle的简单使用
AndroidJetPack应用指南学习笔记1——LifeCycle的简单使用1.LifeCycle的引入:在App的build.gradle目录下添加如下依赖:implementation “androidx.lifecycle:lifecycle-extensions:2.2.0”2.创建Service服务继承LifecycleService,因为LifecycleService是Service子类,和Service使用上没什么区别创建服务的观察者:原创 2020-08-23 20:58:19 · 1722 阅读 · 0 评论