android-jetpack-compose相关内容

如何在多模块、单活动、仅合成、项目上显示可组合或视图模型中的快捷栏

在多模块、单模块上显示Snackbar的最佳方式是什么 活动,是否仅撰写项目? 项目依赖关系图如下所示: 项目的唯一活动在app模块内,它just sets the NavHost as content。 将在NavHost上显示的每个feature模块provides a list of composable screens。 每个屏幕都有its own Scaffold ..
发布时间:2022-04-16 10:24:49 移动开发

如何在Jetpack Compose中创建自定义形状?

我正在尝试使用画布创建此形状 enter image description here 推荐答案 您可以子类化Shape接口,实现createOutline方法。Outline.Generic接受任何Path对象,因此您可以通过添加直线、曲线、圆角矩形等来构建任意形状。 class CustomShape(val param: Int): Shape { override ..
发布时间:2022-04-16 10:22:07 其他开发

在非惰性列中使用项键

LazyColumnHasitem keys,以便将项的状态绑定到唯一标识符,而不是列表索引。有没有办法在这样的非惰性列表中使用项键? Column { for (item in list) { Text(item) } } 我问这个问题是因为我想实现SwipeToDismiss从列表中删除项,这只有在您将键传递给LazyColumn(solution)时才起作用,但我的 ..
发布时间:2022-04-16 10:20:47 其他开发

如何才能使不同的状态具有不同的视图模型?

我正在制作一个应用程序,用户首先需要登录才能从后端获得许多不同的数据。(多个端点) 所以我有一个用于登录的视图模型,而我有许多用于所有其他数据的视图模型。 其他视图模型需要第一个视图模型中的令牌才能从后端获取数据。 我不知道如何才能做到这一点。 我在想,我可以在某种状态管理器中使用登录屏幕,它会将UI定向到正确的屏幕,如下所示 @ExperimentalCompose ..
发布时间:2022-04-16 10:18:27 移动开发

AnimatedVisibility&;SwipeToDismisse输入动画不会触发-Jetpack Compose

好的,我一直在尝试在我的应用程序中实现滑动删除功能。每当我滑动列表中的一项时,我都能看到后面的红色背景,一切都运行得很好。同时,当我删除一个项目时,滑动动画也被成功触发。(尽管我不确定使用延迟是不是一个好主意?我想不出任何其他方法来做这件事)。 但是向数据库/列表添加项目时输入动画不起作用,我不确定原因。以下是我的Lazy专栏的代码 @Composable fun DisplayTasks( ..
发布时间:2022-04-16 10:11:24 移动开发

如何创建根据远程加载的图像大小自动调整大小的Jetpack Compose Image?

我想显示符合以下规则的图像: 映像是远程的,需要在运行时加载。 在加载之前,我们不知道图像的大小。 Image视图应采用父视图的全宽,并应自动调整其高度以匹配远程加载的图像,以便不会发生裁剪/拉伸。 我尝试使用Coil dependency,我有以下代码: Image( painter = rememberImagePainter(viewModel.fullImag ..
发布时间:2022-04-16 10:08:34 移动开发

使用来自MutableStateFlow<;List<;MyDataObject>;>;()的数据对象字段值的Android更新活动

当我更改用于显示下载进度条的对象中的某个字段的值时,从viewModel()可靠地更新我的Activity/UI层时遇到了问题。该活动可以很好地观察到向列表添加对象和从列表中删除对象,但不会更改进度字段。 数据类 data class DownloadObject( val id: String?, var progress: Float, ) 视图模型 clas ..

防止在配置更改时重新运行LaunchedEffect

我只想在加载Composable时运行代码一次。因此,我使用LaunchedEffect With Key为True来实现此目的。 LaunchedEffect(true) { // do API call } 这段代码运行得很好,但只要有任何配置更改,比如屏幕旋转,就会再次执行这段代码。如何在配置更改的情况下阻止它再次运行? api 最简单的解决方案是存储您是否使用 ..

将数据传递到Android Compose中的上一个可组合

我会取一个简单的样本。 我有两个屏幕:屏幕A和屏幕B。从屏幕A,我打开屏幕B。当我将屏幕B返回到屏幕A时,我想将数据传输回屏幕A。 对于Android Fragment,我可以使用Shared ViewModel或Fragment Result API来完成此操作。 但使用Android Compose时,片段结果Api不在Compose中。使用Shard ViewModel时,我需要 ..
发布时间:2022-04-16 09:52:58 移动开发

喷气背包里有没有像扑打一样的热装填?

有没有让Android Studio Jetpack编写自动刷新功能,就像在Fflight中热重新加载一样,这太烦人了!Jetpack Compose查看器中是否有自动刷新功能? 推荐答案 目前,Compose不支持热重新加载。 但是文字值可以直接更新。 一些受支持的类型。 Int 字符串 颜色 DP 布尔值 通过启用这些突出显示的值,您可以查 ..

在Jetpack Compose中创建带有标签的垂直滑块

我基于this answer制作了一个垂直滑块,现在需要为每个滑块添加标题和值。 如果我在修饰符中设置一个固定的宽度值modifier.width(180.dp),它看起来就像这样 但是,我想让滑块高度与设备屏幕大小相对应,因此我将宽度设置为modifier.fillMaxWidth(),底部文本将消失 这是我的垂直滑块构图,我尝试在此处设置修改器中的高度。 @Compos ..
发布时间:2022-04-16 09:45:14 其他开发

如何使Jetpack Compose复选框四舍五入

如何在JetPackCompose中创建四舍五入的复选框,如this。我尝试在其上使用可组合的形状,但不起作用。 推荐答案 我正在寻找如何做您问的相同的事情,您的问题帮助了我的旅程,所以我分享这是公平的。加上一些动画,你就是我的朋友了。 使用方框和图标制作圆形图标 Box( modifier = Modifier .clip(CircleS ..
发布时间:2022-04-16 09:42:45 移动开发

为什么在组合中使用viewModel(),在活动或片段中使用viewModels()?

In this link被指示在任何组合中使用viewModel(),在活动中,我们在调用viewModel()时会得到相同的对象。尽管它被指示在Composable中使用viewModel(),但我也能够在setContent{}中(在任何Composable之外)使用它。 In this link指示在活动或片段中使用viewModels(),以获取扩展ViewModel的类的对象。 ..