![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
compose
文章平均质量分 62
卡布哥哥学安卓
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 · 662 阅读 · 0 评论 -
Jetpack Compose使用自定义操作符实现绘制五角星效果
公众号:安安安安卓说明compose中我们的所有ui操作,包括一些行为,例如:点击、手势等都需要使用Modifier来进行操作。因此对Modifier的理解可以帮助我们解决很多问题的自定义星行Modifier本文我们打算自定义一个Modifier,通过这个modifier我们可以实现用一个操作符就画出五角星的效果原理我们实现绘制五角星的原理如下图,首先我们会虚构两个圆,将内圆和外圆角度平分五份,然后依次连接内圆和外圆的切点的坐标,然后使用path绘制完成。实现代码中的实现涉及到自定义绘.原创 2022-04-16 11:56:44 · 1991 阅读 · 0 评论 -
compose 页面间参数正向反向传递方法
名词解释什么是正向反向参数传递呢正向:相当于一个Activity启动另一个Activity并向其传递参数;反向:相当于一个Activity退出的时候向启动它的Activity回传参数;思路本文主要讲反向参数传递,正向参数传递参考:正向参数传递起先关于这个问题是没什么思路的,网上(包括google官网)也没有相关说明,以至于公司新开的项目,虽然使用compose来写的,但是反向参数传递却是自定义的一个总线框架来做的。使用总线框架做明显是不合适的。基于这样一个原因,项目完成后我决定研究一下这原创 2022-04-07 18:29:16 · 2070 阅读 · 0 评论 -
2022年学习计划完成情况贴
正式将今年的学习计划搬到csdn来更新,原因无他,掘金没有置顶功能学习计划完成情况20220403使用RecycleView优雅的实现数据列表更新android使用知识增加键盘弹出和关闭操作方法20220326compose中返回键的监听方式实现20220326 Compose实用知识整理,增加了防快速点击效果操作符,和Compose跳转activity并返回结果的方法20220107使用compose实现淘票票选电影座位的效果20220102android事件流原创 2022-04-03 17:38:15 · 1587 阅读 · 0 评论 -
Compose实用知识
本文主要讲解一些安卓中实用的compose知识,长期更新防快速点击说明防快速点击主要使用 Modifier 操作符来实现,代码如下代码@Composablefun Modifier.avoidRepeatclickable(millis: Long = 500, onClick: () -> Unit): Modifier { var timeStamp by remember { mutableStateOf(0L) } return cli.原创 2022-03-26 10:43:33 · 2841 阅读 · 0 评论 -
Compose中模仿Activity启动模式
关于启动模式我们都知道在activity体系中是有多种启动模式的:standard、singleTop、singleInstance、singleTask四种。但是在compose中因为是单activity所以自然是没有启动模式的说法的,因此本文我使用一些NavHostController的一些api来实现启动模式中的效果。standard默认的效果就是standard的效果singleTopcompose中我们可以通过判断顶部的页面是否是我们要启动的singleTop页面来处理。如果顶部页面是原创 2022-02-12 09:47:25 · 1294 阅读 · 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 · 3067 阅读 · 0 评论 -
Compose中下拉框的使用
代码val datas = mutableListOf( "西瓜", "苹果", "芝麻", "狗熊") "西瓜", "苹果", "芝麻", "狗熊") DropdownMenu(expanded = true, onDismissRequest = { }, modifier = Modifier.width(100.dp)) { datas.forEach {原创 2022-01-01 10:36:17 · 1308 阅读 · 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 · 1442 阅读 · 0 评论 -
Compose 自定义TextField实现自定义的输入框
概览众所周知Compose中默认的TextField和OutlineTextField样式并不能满足所有的使用场景,所以自定义TextField就成了必备技能,本文就揭露一下自定义TextField的实现。自定义TextField主要使用BasicTextField实现。简单自定义BasicTextField示例代码 var text by remember { mutableStateOf("简单的TextField") } BasicTextField(原创 2021-12-31 23:28:14 · 2547 阅读 · 1 评论 -
Jetpack Compose导航动画
页面导航动画是啥Compose的页面导航动画就相当于Activity中的页面切换动画,例如打开Activity时候进入的动画,关闭Activity时候的退出动画。后文所有提到导航的部分,都是指得Compose导航。页面导航实现的现状官方正式版的导航中并没有提供导航的动画,但是可能官方也发现了这个问题,因此官方目前正在开发独立于主框架的依赖项目(com.google.accompanist:accompanist-navigation-animation)方便开发者使用导航。依赖目前最新版本是:co原创 2021-12-29 05:21:30 · 1298 阅读 · 1 评论 -
Compose中下拉弹出框的使用
代码val datas = mutableListOf( "西瓜", "苹果", "芝麻", "狗熊") "西瓜", "苹果", "芝麻", "狗熊") DropdownMenu(expanded = true, onDismissRequest = { }, modifier = Modifier.width(100.dp)) { datas.forEach {原创 2021-12-26 14:40:04 · 912 阅读 · 0 评论 -
android Compose中ScrollableTabRow的使用
概述ScrollableTabRow就相当于以前开发中使用的TabLayout。属性介绍selectedTabIndex 当前选择的item的索引backgroundColor背景颜色indicator导航条的样式divider 分割线属性Tab用于实现单条的item简单实现代码@Composablefun Greeting() { val tabs = mutableListOf<String>( "安安安安卓", "鸿阳",原创 2021-11-07 08:53:28 · 1447 阅读 · 0 评论 -
android Compose中沉浸式设计和导航栏的处理
关注公众号学习更多知识Material Design风格的顶部和底部导航栏Compose中Material Design风格的设计我们的做法如下:1、使用Scafoold作为页面的顶级,Scafoold中承载topbar和bottombar分别作为顶部导航栏和底部导航栏。2、调用WindowCompat.setDecorFitsSystemWindows(window, false)方法让我们的布局超出状态栏和底部导航栏的位置3、使用ProvideWindowInsets包裹布局,使我们可以.原创 2021-11-02 06:52:30 · 5091 阅读 · 1 评论 -
android-使用compose写一个贪吃蛇游戏
关注公众号学习更多知识灵感来源前段时间看到了大佬fundroid使用compose编写俄罗斯方块的文章,深受启发,当时便决定也要把诺基亚的贪吃蛇搬到android上来,因此才有了这篇文章本篇文章界面和思路参考于 fundroid的文章fundroid俄罗斯方块传送: https://blog.csdn.net/vitaviva/article/details/115878190最终效果提前发一下效果,让读者有个心理预期,逻辑真不复杂,务必耐心看完思路我们的界面分为两部分,上半部分是游.原创 2021-10-09 07:33:25 · 672 阅读 · 0 评论 -
Compose中Paging3、SwipeRefresh配合实现下拉刷新和自动加载
关注公众号学习更多知识概述Compose中Paging3的使用和Recycleview中Paging3的使用基本一致,不同的是Compose中我们的ui使用LazyColumn来承载数据。我们需要做的事情如下:配置PagingSource配置数据类SimpleUseBean配置ViewModel在LazyColumn中渲染数据简单加载数据依赖 var paging_version = "3.0.1" implementation("androidx.paging:pag.原创 2021-09-23 07:27:49 · 2152 阅读 · 1 评论 -
MotionLayout详细解析
关注公众号学习更多知识git地址https://github.com/ananananzhuo-blog/MotionLayoutSample简单实现效果模拟器录制的,比较卡顿,建议耐心看完使用概述MotionLayout是一个布局,ConstraintLayout的子布局。专门用来实现运动过程中的控件动画,举例:我们可以通过在布局文件layoutA中MotionLayout进行布局,在布局中设置两个子控件TextView和ImageView。比如我们想在布局中手指触碰向上滑动的时候让.原创 2021-09-05 09:44:52 · 729 阅读 · 0 评论 -
Jetpack Compose状态管理
概览所谓的状态可以简单的理解为应用中的某个值的变化,比如可以是一个布尔值、数组放在业务的场景中,可以是 TextField 中的文字、动画执行的状态、用户收藏的商品都是状态我们知道 compose 是声明式的 ui,每次我们重组页面的时候都会把组件重组,此时就需要引入状态进行管理,例如:我们在商品的 item 里面点击按钮收藏了商品,此时商品的收藏状态发生了改变,我们需要重组 ui 将商品变为已收藏状态,这个时候就需要用 remember 扩展方法保存重组状态,如果使用 boolean 这个基本类型原创 2021-08-26 22:00:21 · 1184 阅读 · 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 · 4806 阅读 · 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 · 3990 阅读 · 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 · 1912 阅读 · 1 评论