首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Jetpack Compose 自定义 好看TabRow Indicator

背景Jetpack Compose 提供了强大 Material Design 组件,其中 TabRow 组件可以用于实现 Material Design 规范选项卡界面。...但是默认 TabRow 样式可能无法满足所有场景,所以我们有时需要自定义 TabRow 样式。...Jetpack Compose 中使用 TabRow简单使用 TabRow 一般可以分为以下几步:定义 Tab 数据模型每个 Tab 对应一个数据类,包含标题、图标等信息:    data class ...)在 TabRow 添加 Tab 项使用 Tab 组件添加选项卡,传入标题、图标等:    TabRow {       tabItems.forEach { item ->          Tab...Jetpack Compose TabRow与HorizontalPager 联动笔记共享App我新开发笔记共享App 也用上了TabRow与HorizontalPager联动效果效果图图片自定义

1.1K00

Jetpack-Compose 学习笔记(三)—— Compose 自定义“View”

Compose 当然也不甘落后,在 Compose 我们可以使用 Layout 组件自定义我们自己 Composable 组件。...而在 Compose 我们只需要简单地使用 Layout 组件自定义就可以了。 在开始之前,我们需要先了解一下 Layout Composable 组件一些基础知识。 1....其实,Compose Row、Column 组件都是使用 Layout 方法实现,它也是 Compose 用来自定义一个 “ViewGroup” 核心方法。...现有的官方 Compose 组件没有这种功能组件,这就需要定制化了。...而且 Compose 自定义 Layout 两种情况也可以对应到 View 体系两个情况,但可以看出,Compose 都是在 Layout 组件中进行改写与编程,可以让开发者更加聚焦在具体代码逻辑上

1.1K21

使用Jetpack Compose完成你自定义Layout

概述 Compose已经内置了许多组件,诸如Column,Row,Box等。开发者可以通过这些组合这些已有的组件来定制自己专属组件。...Layout Modifier使用示例 有时你想在屏幕上展示一段文本信息,通常你会使用到Compose内置Text组件。...placeRelative 会根据当前 layoutDirection 自动调整子元素位置。 在我们示例,当前子元素横向坐标相对当前元素为零,而纵向坐标则为Text组件顶部到文本顶部距离。...然而我们有时是需要精细化测量布局每一个子组件,这需要我们进行完全自定义Layout。这类似于传统View系统定制View与ViewGroup测量布局流程区别。...在我们示例仍然不对子元素进行额外限制,最终将每次测量结果保存到placeables这个List

2.1K20

Jetpack Compose实现一个优雅 Toast 组件——简单易用~

Toast 是Android中常见轻量级提示\ 本文将介绍如何使用Compose技术实现一个Toast组件 不是一个简单toast 优雅-简洁-动画 才是我风格 \ 系统原生Toast默认是在底部弹出..., text, Toast.LENGTH\_SHORT).show() 在github上看到一个很棒实现方式,现在要丢弃原生Toast\ 使用Compose组件来实现一个 **优雅-简洁-动画**... Toast 分享一个 我用Compose写了个笔记App,代码开源~里面用到了这个超级好看Toast 使用方法 val toastState = remember { ToastUIState()...Animatedvisibility可以很轻松实现各种组合动画\ 弹出效果 :渐渐**显示**+垂直往下\ 消失效果 :渐渐**消失**+垂直往上\ 将ToastUI放在AnimatedVisibility组件下即可...>//动画时长 } 直接用 material3 提供图标 ,当然可以用drawable,为了简洁而且 material3 提供图标基本满足大部分场景使用 图片 接口实现 ToastData接口实现

92740

一起看 IO | Jetpack Compose 新特性

与此同时,Twitter 也已经在应用不同部分使用了 Jetpack Compose 并从中受益,因为 "Compose 让我们更容易定义自己组件,并使它们 API 更明确、灵活和直观。"...: 文本改进 字体边距 我们在问题跟踪器定位到了 得票最高问题之一,并通过将 includeFontPadding 设置为自定义参数来解决它。...与 CoordinatorLayout 互操作 从现在起,当您在 View 系统 CoordinatorLayout 嵌套了一个支持滚动可组合项时,您可以确保它们滚动行为是可互操作。...在 I/O 演讲 Jetpack Compose 中常见性能问题 Compose 团队介绍了常见性能错误以及这些错误解决方法。...Codelab 全新 Compose 性能说明文档 更新 自定义输入文档 I/O 演讲视频: Jetpack Compose 中常见性能问题 以及 Compose 惰性布局 对于新手开发者,

2.2K20

开源 | 如何写一个好用 JetPack Compose 状态页组件

引言 世界很大,也很小,组件很多,也很少。 关于开发中常见状态页组件,我们已经见了很多,但是在 JetPack Compose 该如何去写呢?...需求分析 支持 compose 与 view 分层设计,按需引入 支持全局/局部配置默认缺省页 支持全局重试与防抖处理 … 看完基本条件,其实也都不难,在 View 设计一个状态页组件,大家都知道怎么做...那么我们下面就开始构思一下,如何设计这个状态页组件 StateX。 基本思路 其实只要写过 compose 代码,应该都明白,其实更简单了。...解析 StateX 要设计一个可以供 compose 与 View 都可以使用组件,不可避免就需要两个model,分层去设计,并且支持按需引入,对于共有的模块,还需要单独提到基础组件里,于是 StateX...Compose 组件,外部只需要传入相应控制器,同时也可以重写相应状态对应 component ,默认使用是全局定义

77520

开源 | 如何写一个好用 JetPack Compose 状态页组件

Hi , :) 世界很大,也很小,组件很多,也很少。 关于开发中常见状态页组件,我们已经见了很多,但是在 JetPack Compose 该如何去写呢?...看完基本条件,其实也都不难,在 View 设计一个状态页组件,大家都知道怎么做,但是 Compose 呢? 那么我们下面就开始构思一下,如何设计这个状态页组件 StateX。...而在 compose ,重组会执行所有调用地方,并判断是否需要执行,我们必须要考虑如何避免重复重组。...解析 StateX 要设计一个可以供 compose 与 View 都可以使用组件,不可避免就需要两个model,分层去设计,并且支持按需引入,对于共有的模块,还需要单独提到基础组件里,于是 StateX...Compose 组件,外部只需要传入相应控制器,同时也可以重写相应状态对应 component ,默认使用是全局定义

1K10

学习|AndroidJetPack几个组件简单使用

本文长度为2716字,预计阅读8分钟 Android JetPack Android JetPack是一整套库,工具和指南。可帮助开发者更轻松地编写优质应用。...这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码工作并简化复杂任务,以便您将精力集中放在所需代码上。 ?...说起来Google对JetPack也是非常重视,从它官方主页也可以看出来JetPack在首页上就有一个导航栏了。 ?...然后再写一个按钮事件,就是点击按钮后直接对LiveData两个数据进行写入,写入方式上面也可以看出来,用postValue。 布局文件DataBinding <?...,这里就可以直接引用了,Activity代码现在看就很简单了,这里我就只说说fragment调用方式了。

1.6K20

Jetpack可能被你忽视—行为组件简析

前言 之前说过了Jetpack架构组件,作为MVVM架构必备组件,当然是人尽皆知了。然后jetpack还有很多其他可能被你忽视组件,这次我们就说说其中一个同样精彩模块——行为组件。...Jetpack-行为组件 CameraX “CameraX 是一个 Jetpack 支持库,旨在帮助您简化相机应用开发工作。...对于使用硬件应用,比如使用了相机,如果你想让Google Play允许将你应用安装在没有该功能设备上,就要配置硬件功能权限为不必须自定义权限。...slice.jpg 总结 Jetpack-行为组件讲完了,这部分主要是和Android服务相结合一些库,帮助大家更好调用系统服务。...有些组件可能大家很少可能会用到,比如切片,但是不得不承认切片想法真的很好,有时候我们就可能只用应用某一个小功能,但是又要打开app才能使用。有了切片就可以随时随地快速用这些小功能了。

2.1K30
领券