草庐IT

JetPack4

全部标签

【Jetpack】使用 Room 中的 Migration 升级数据库异常处理 ( 多个数据库版本的迁移 | fallbackToDestructiveMigration() 函数处理升级异常 )

文章目录一、Room#Migration迁移工具升级数据库二、多个数据库版本的迁移三、数据库异常处理-RoomDatabase.Builder#fallbackToDestructiveMigration()函数四、完整代码示例一、Room#Migration迁移工具升级数据库RoomMigration数据库迁移工具是AndroidJetpackArchitectureComponents(架构组件)的一部分,它是一个方便的数据库迁移工具,用于为Android中使用Room框架创建的数据库提供自动化迁移方案;RoomMigration数据库迁移工具用途如下:数据库修改:修改数据库表结构;迁移代

Android 轻量级存储方案(SharedPreferences、MMKV、Jetpack DataStore)

1.SharePreferencesSharedPreferences:一个轻量级的存储类,特别适合用于保存应用配置参数。(是用xml文件存放数据,文件存放在/data/data//shared_prefs目录下)image.pngSharedPreferences使用:1.保存数据:保存数据一般分为以下步骤:使用Activity类的getSharedPreferences方法获得SharedPreferences对象;使用SharedPreferences接口的edit获得SharedPreferences.Editor对象;通过SharedPreferences.Editor接口的putX

Android Jetpack架构组件(十一)— DataStore

一、DataStore简介JetpackDataStore是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。DataStore使用Kotlin协程和Flow以异步、一致的事务方式存储数据。PreferencesDataStore和ProtoDataStoreDataStore提供两种不同的实现:PreferencesDataStore和ProtoDataStore。PreferencesDataStore使用键存储和访问数据。此实现不需要预定义的架构,也不确保类型安全。ProtoDataStore将数据作为自定义数据类型的实例进行存储。此实现要求您使用协议缓冲区来定义架构,但

【Android】Jetpack Compose 教程 - 分步指南

前言在本章节中,我们将学习JetpackCompose,这是一个用于构建原生UI的现代工具包。通过这个完整的教程,我们将学习如何使用Text、TextField、Preview、Column、Row、Button、Card、AlertDialog、MaterialDesign元素等。因此,事不宜迟,让我们开始创建一个JetpackCompose项目。因此,本章节是关于通过示例学习适用于Android的JetpackCompose。注意:要使用JetpackCompose,您需要拥有最新的Canary版本的AndroidStudio4.2。因此,您可以转到AndroidStudio预览页面并下载

Android-Jetpack-LiveData详解

配图来自网络,如侵必删在开发中使用ViewModel的时候,肯定会想数据怎么回调到Activity/Fragment会更好,AndroidSDK给我们提供了LiveData类来做数据回调的事情。这篇博客就来分享LiveData相关的知识,希望对看文章的小伙伴有所帮助。LiveData概述LiveData是一个可以被观察的数据容器类,我们可以将数据放到LiveData中,让数据成为被观察者,当数据发生变化的时候,默认会发起通知,这样界面就可以发生变化。使用LiveData之后,我们的页面逻辑就变成了如下所示:配图来自网络,如侵必删使用LiveData的好处确保界面符合数据状态;不会发生内存泄漏;

Jetpack compose:炫酷的按钮点击效果

Jetpackcompose:炫酷的按钮点击效果屏幕的每个组件在与用户交互时都有其给用户反馈的方式。例如,当用户触摸Toggle按钮时,它会更改其状态以响应交互。这种交互给用户一种感觉。在此博客中,我们将实现一些自定义点击效果,使您的按钮点击更具吸引力。默认情况下,按钮在被触摸时会显示波纹效果。您可以根据您的要求自定义波纹颜色、alpha等,但我们不打算在本文中介绍。是的,但我们将学习一些禁用默认连锁反应的方法。我们要做些什么?缩放效果点击效果震动效果单击动画形状3种禁用默认点击效果的方法让我们开始吧…缩放效果对于这种效果,我们只需要更改按钮的比例即可获得漂亮的弹跳效果。代码如下:enumcl

Android Jetpack Compose — Slider滑动条

    在AndroidJetpackCompose中,Slider(滑动条)是一个常用的用户界面控件,它允许通过滑动条来选择一个范围或数值。Slider控件非常适用于调整音量、亮度、进度等需要连续调整的场景。一、Slider的属性        Slider是AndroidJetpackCompose中的一个控件,用于实现滑动条的功能。它具有以下常用的属性:value:滑动条的当前值。可以使用value参数来设置初始值,并通过onValueChange参数监听值的变化。onValueChange:滑动条值变化时的回调函数。可以在这个回调函数中处理滑动条值的更新逻辑。valueRange:滑动

Jetpack Compose中的手势操作和事件处理

高级事件处理APICompose中的手势操作或事件处理全部都是以Modifier修饰符的形式提供的,事件处理按照层次可以划分为高级事件处理API和低级事件处理API。其中高级事件处理API是位于更上层的API,它们都是基于更底层的低级事件处理API实现的,也是开发中比较常用的。高级事件处理API的分类大概如下图所示:点击事件监听点击事件非常简单,使用clickable和combinedClickable修饰符即可满足需求:@OptIn(ExperimentalFoundationApi::class)@ComposablefunClickableExample(){Column{Box(Mod

【Jetpack】Navigation 导航组件 ④ ( Fragment 跳转中使用 safe args 安全传递参数 )

文章目录一、页面跳转间的传统的数据传递方式1、传统的数据传递方式-Bundle传递数据1、Navigation组件中的Bundle数据传递2、传统数据传递实现步骤3、FragmentA完整代码示例4、FragmentB完整代码示例5、执行结果2、使用Bundle传递数据安全性差二、页面跳转间的传统的数据传递方式1、导入插件依赖2、使用插件3、在navigation_graph.xml中定义要传递的argument参数信息4、重新编译生成参数传递相关代码5、调用FragmentBArgs类生成参数Bundle6、FragmentA中获取参数三、两种传参方式的完整代码示例1、Gradle构建脚本I

Jetpack Compose 中的动态加载、插件化技术探索

在传统的Android开发模式中,由于界面过分依赖于Activity、Fragment这样的组件,一个业务模块中往往会存在着大量的Activity类,因此诞生了很多的插件化框架,这些插件化框架基本都是想方设法的使用各种Hook/反射手段来解决使用未注册的组件问题。在进入JetpackCompose的世界以后,Activity的角色被淡化了,由于一个Composable组件就可以承担一个屏幕级的显示,因此我们的应用中不再需要那么多的Activity类,只要你喜欢,你甚至可以打造一个单Activity的纯Compose应用。本文主要尝试探索几种可以在JetpackCompose中实施插件化/动态加