jetpack
文章平均质量分 60
卡布哥哥学安卓
android开发
展开
-
Compose默认主题Color不够用怎么办?,一招解决
为什么要自定义主题 primary: Color, primaryVariant: Color, secondary: Color, secondaryVariant: Color, background: Color, surface: Color, error: Color, onPrimary: Color, onSecondary: Color, onBackground: Color, onSurface: Colo原创 2022-04-21 22:08:04 · 672 阅读 · 0 评论 -
Jetpack Compose使用自定义操作符实现绘制五角星效果
公众号:安安安安卓说明compose中我们的所有ui操作,包括一些行为,例如:点击、手势等都需要使用Modifier来进行操作。因此对Modifier的理解可以帮助我们解决很多问题的自定义星行Modifier本文我们打算自定义一个Modifier,通过这个modifier我们可以实现用一个操作符就画出五角星的效果原理我们实现绘制五角星的原理如下图,首先我们会虚构两个圆,将内圆和外圆角度平分五份,然后依次连接内圆和外圆的切点的坐标,然后使用path绘制完成。实现代码中的实现涉及到自定义绘.原创 2022-04-16 11:56:44 · 2000 阅读 · 0 评论 -
compose 页面间参数正向反向传递方法
名词解释什么是正向反向参数传递呢正向:相当于一个Activity启动另一个Activity并向其传递参数;反向:相当于一个Activity退出的时候向启动它的Activity回传参数;思路本文主要讲反向参数传递,正向参数传递参考:正向参数传递起先关于这个问题是没什么思路的,网上(包括google官网)也没有相关说明,以至于公司新开的项目,虽然使用compose来写的,但是反向参数传递却是自定义的一个总线框架来做的。使用总线框架做明显是不合适的。基于这样一个原因,项目完成后我决定研究一下这原创 2022-04-07 18:29:16 · 2152 阅读 · 0 评论 -
Compose中模仿Activity启动模式
关于启动模式我们都知道在activity体系中是有多种启动模式的:standard、singleTop、singleInstance、singleTask四种。但是在compose中因为是单activity所以自然是没有启动模式的说法的,因此本文我使用一些NavHostController的一些api来实现启动模式中的效果。standard默认的效果就是standard的效果singleTopcompose中我们可以通过判断顶部的页面是否是我们要启动的singleTop页面来处理。如果顶部页面是原创 2022-02-12 09:47:25 · 1322 阅读 · 0 评论 -
使用Compose实现淘票票选择电影座位的效果
关注公众号学习更多知识这是一篇去年就写好的博客起因新年要来了,看电影是我们新年中必不可少的娱乐项目,那么看电影的时候你是否有想过选座位的空间是如何实现的呢,座位优秀的程序员,我就想到了,今天就带你研究。compose的绘制系列在两个月前就已经学习完成了,但是仅限于api的熟练,因此今天打算做一个仿淘票票选电影座位的自定义ui。效果查看先看一下支付宝客户端的实现吧我们发现选座位的主要点就是座位的绘制、选择座位的逻辑、双指手势缩放、单指长按后拖动效果。所以关键就是这几个效果的实现说到这里了提原创 2022-02-12 09:42:11 · 879 阅读 · 0 评论 -
Compose中SnackerBar的使用
代码 val scope = rememberCoroutineScope() val scaffoldState = rememberScaffoldState() Scaffold(snackbarHost = { SnackbarHost(hostState = it) { data ->// Snackbar(// snackbarData = data,// backgr原创 2022-01-09 14:08:51 · 3090 阅读 · 0 评论 -
Compose中下拉框的使用
代码val datas = mutableListOf( "西瓜", "苹果", "芝麻", "狗熊") "西瓜", "苹果", "芝麻", "狗熊") DropdownMenu(expanded = true, onDismissRequest = { }, modifier = Modifier.width(100.dp)) { datas.forEach {原创 2022-01-01 10:36:17 · 1338 阅读 · 0 评论 -
Jetpack Compose详尽介绍
概览Compose提供了多个api用来实现各种手势,这些手势包括点击、按压、双击、长按、水平垂直滑动、拖动、双指平移缩放旋转、嵌套欢动效果各种手势效果介绍点击手势代码Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { Box(modifier = Modifier .size(200.dp) .background(Color.Gr原创 2021-12-31 23:30:17 · 1466 阅读 · 0 评论 -
Compose 自定义TextField实现自定义的输入框
概览众所周知Compose中默认的TextField和OutlineTextField样式并不能满足所有的使用场景,所以自定义TextField就成了必备技能,本文就揭露一下自定义TextField的实现。自定义TextField主要使用BasicTextField实现。简单自定义BasicTextField示例代码 var text by remember { mutableStateOf("简单的TextField") } BasicTextField(原创 2021-12-31 23:28:14 · 2577 阅读 · 1 评论 -
Jetpack SplashScreen帮你实现快速开屏
概述android12新增了一个SplashScreen的启动页辅助类。不过他并不能向下兼容,只能在android12进行使用。因此官方在jetpack中开发了可以向下进行兼容的jetpack版SplashScreen(目前仍然是alpha所以还不不建议在项目中使用)。本文会简单讲讲jetpack版SplashScreen的使用。简易使用引入依赖implementation 'androidx.core:core-splashscreen:1.0.0-alpha02'配置主题<styl原创 2021-12-31 23:24:02 · 1334 阅读 · 0 评论 -
Jetpack Compose导航动画
页面导航动画是啥Compose的页面导航动画就相当于Activity中的页面切换动画,例如打开Activity时候进入的动画,关闭Activity时候的退出动画。后文所有提到导航的部分,都是指得Compose导航。页面导航实现的现状官方正式版的导航中并没有提供导航的动画,但是可能官方也发现了这个问题,因此官方目前正在开发独立于主框架的依赖项目(com.google.accompanist:accompanist-navigation-animation)方便开发者使用导航。依赖目前最新版本是:co原创 2021-12-29 05:21:30 · 1319 阅读 · 1 评论 -
Compose中下拉弹出框的使用
代码val datas = mutableListOf( "西瓜", "苹果", "芝麻", "狗熊") "西瓜", "苹果", "芝麻", "狗熊") DropdownMenu(expanded = true, onDismissRequest = { }, modifier = Modifier.width(100.dp)) { datas.forEach {原创 2021-12-26 14:40:04 · 936 阅读 · 0 评论 -
Jetpack Compose状态管理
概览所谓的状态可以简单的理解为应用中的某个值的变化,比如可以是一个布尔值、数组放在业务的场景中,可以是 TextField 中的文字、动画执行的状态、用户收藏的商品都是状态我们知道 compose 是声明式的 ui,每次我们重组页面的时候都会把组件重组,此时就需要引入状态进行管理,例如:我们在商品的 item 里面点击按钮收藏了商品,此时商品的收藏状态发生了改变,我们需要重组 ui 将商品变为已收藏状态,这个时候就需要用 remember 扩展方法保存重组状态,如果使用 boolean 这个基本类型原创 2021-08-26 22:00:21 · 1198 阅读 · 0 评论 -
Jetpack Compose中ViewModel、Flow、Hilt、Coil的使用
Compose可以配合多个Jetpack组件使用Compose可以配合多个Jetpack组件开发提高开发效率多种组合方式Compose配合ViewModel使用概述Compose中ViewModel的使用和Jetpack一致,通常我们构建页面的时候,如果一条数据多个布局都需要使用到的话我们只能在方法的形参中层层传递。但是这样明显是不合理的,会降低代码的可读性。使用ViewModel可以完美的解决这个问题,Compose中使用ViewModel的话需要引入lifecycle-viewmodel-c原创 2021-08-14 16:06:07 · 4890 阅读 · 3 评论 -
compose动画详解-你绝对不会再看到更详细的了
关注公众号学习更多知识概述compose 为支持动画提供了大量的 api,通过这些 api 我们可以轻松实现动画效果ps:这些 api 的原理与 Flutter 很接近,与原生的 api 相去甚远你可以提前看看用 compose 实现的一个放大缩小动画,总的来说还是比较流畅:低级别动画 APIanimate*AsState所能处理属性的种类:Float、Color、Dp、Size、Bounds、Offset、Rect、Int、IntOffset 和 IntSize通过 animate*A原创 2021-07-19 07:42:34 · 4046 阅读 · 2 评论 -
compose Text简单使用
Text任何前端框架对文字的处理都是最重要的,Compose中文字的展示和文字的编辑分别使用的Text控件和TextField控件实现。Text使用简单使用代码@Composablefun SimpleText() { Text("Hello World")}效果修改文字样式代码 Text( text = "Hello $name!", color = Color.Green,//文字颜色 fontSize = 40.原创 2021-07-17 14:52:30 · 1925 阅读 · 1 评论 -
Jetpack—架构组件—App Startup
关注我的公众号 安安安安卓 学习更多知识代码 git 地址App Startup介绍作用这是官网的截图,大意就是 App Startup 是一种用来在 app 启动时候规范初始化数据的 library。同时使用 App Startup 可以解决我们平时滥用 ContentProvider 导致的启动变慢问题。还有一点,App Startup 可以用于 app 开发,也可以用来进行 sdk 开发App Startup 的优势平时使用 ContentProvider 自动获取 Appli.原创 2021-06-16 22:23:29 · 181 阅读 · 0 评论