问题标签 [android-jetpack-compose-scaffold]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1122 浏览

android - 如何在jetpack compose中使用BottomBar实现底部表

所以我想要实现的是:

  • 一个承载 BottomNav 栏的家庭组合(此处使用脚手架)
  • 底部导航栏附有 3 个其他可组合项
  • 3 个可组合项中的每一个都有自己的惰性列
  • 3 个惰性列中的每个项目都有一个菜单图标,单击该图标会打开底部工作表

借助此处的答案,我可以通过将脚手架封闭在 ModalBottonSheetLayout 中来实现上述目的:Jetpack Compose Scaffold + Modal Bottom Sheet

问题:

  • 底部工作表的目的是显示一个菜单项,单击该菜单项应从lazyColumn中删除该项目
  • 所以底部工作表需要知道被点击删除它的项目的详细信息

我怎样才能做到这一点?主可组合项没有任何有关其托管的可组合项中存在的惰性列中的项目的信息。

有没有不同的方法来解决这个问题?

这是我的代码:

HomeComposable.kt

MessageItemsComposable.kt

0 投票
2 回答
397 浏览

android - 如何在jetpack compose中实现图像的缩放和平移

我有一个可组合的图像,我希望用户能够放大图像的一部分。例如,如果捏在图像的左下角并放大到左下角而不是图像的中心。放大后,如果用一根手指,就可以在图像周围平移。

在我当前的代码中,我有放大和缩小逻辑,但无论图像在哪里被挤压,它都默认为图像的中心并且放大时图像没有平移逻辑。

所以我想实现两件事:

  1. 能够缩放它实际被捏的位置(不是图像的中心)
  2. 放大时,可以平移图像

我已经尝试从其他堆栈溢出答案中实现多个解决方案,但它们似乎不起作用。

0 投票
1 回答
188 浏览

android - 如何将事件传递给 Composables?

我有两个这样的组合:

(如果另一个 ShowSnackbar 事件在一个小吃店可见时出现,我想忽略该新事件)

如何将这样的事件从一个可组合发送到另一个?

0 投票
1 回答
373 浏览

android - 脚手架中 PaddingValues 参数的用途是什么

删除innerPadding不会改变任何东西。

请注意,我是Compose的新手。
如果您有任何困惑,请在评论中提问

0 投票
1 回答
336 浏览

android - Jetpack Compose 在外部单击时折叠底部表

我目前通过 a 显示一个底部工作表,BottomSheetScaffold并希望在用户在底部工作表之外单击时折叠它。有没有办法检测底部表之外的点击?

这是我的屏幕BottomSheetScaffold

如果底部工作表展开,这是我想要检测点击的区域的可视化。

在此处输入图像描述

0 投票
1 回答
92 浏览

mvvm - 如何将 ViewModel 中的函数传递到 Jetpack Compose 中脚手架的浮动操作按钮?

我正在使用纯粹的 Jetpack Compose 构建一个 Android 应用程序。我的整个应用程序都包裹在一个脚手架下,并且我的应用程序中的每个“屏幕”(它们是可组合的)都有一个 ViewModel。因此,我的脚手架中有一些条件语句来根据路线确定浮动操作按钮 (FAB)。但是,其中一个 FAB 需要访问 ViewModel 中的函数,该函数仅在我导航到包含该可组合的路由时创建,并且我不知道让 FAB 访问该视图模型函数的最佳方式.

以以下示例(基于我的代码)为例,并注意路线“route3”的 FAB。

所以我的主要问题是,如果FAB3变量需要从 访问函数viewModel3,我将如何去做?

0 投票
1 回答
101 浏览

android - 如果在 android jetpack compose 中为 NavigationBar 选择和取消选择,如何更改图标,例如我们在 xml 中用于选择状态的选择器?

我想使用基于 NavigationBar 中选定状态的轮廓和填充图标,就像谷歌地图应用程序一样,使用 jetpack compose。在 xml 的情况下,我们使用选择器,那么我们在 compose 中使用什么?

这是我的代码->

MainActivity.kt

屏幕.kt

HomeScreen.kt

我还需要使用选择器 xml 还是在 jetpack compose 中有替代方法?

0 投票
1 回答
132 浏览

android - Android Jetpack Compose (Composable) 从 Coroutine 获取 String 资源

我有一个封装了一个密封类的流,用于向 UI 调用消息。例如显示一个 Snackbar。我可以使用 LaunchedEffect 观察来自 Composable 的 Flow。但问题是我想从协程范围内检索字符串资源。而且我不想在我的视图模型中使用直接字符串值,因为我想将 Locale 用于不同的语言,所以我改为传递 String Res Id。那么有没有一种很好的方法来做到这一点,而不将字符串资源放在 Application 类中并从那里检索它们,如这里所描述的 getString 上下文或活动之外

下面的代码:

  1. 我有 Scaffold 用于显示小吃栏,当用户单击填充整个屏幕的脚手架时,会调用 showSnackbarWithScope 方法,该方法会向 Flow 发出新值。
  2. 然后通过 LaunchedEffect 捕捉变化
  3. 然后它使用消息调用 showSnackbar() 方法,但该函数需要 String 并且我有 String Res Id (Int) 值
  4. 问题我不能使用从可组合范围检索字符串的 stringResource() 方法,因为我在协程中
0 投票
0 回答
18 浏览

android - Jetpack Compose Scafold BottomNavigation 不与 Pixel 5 设备中的屏幕底部重叠

像素 5 设备上的 BottomNav 和 Scafold 的屏幕截图

我一直在努力让 BottomNav 重叠并覆盖像素 5 设备屏幕底部的白色区域并取得任何成功。底部导航预计将覆盖下面的所有白色区域,这似乎只发生在 Pixel 5 设备上。

如果您之前遇到过此问题并有解决方案,请提供帮助。提前致谢。

0 投票
2 回答
41 浏览

android - 如何在 Jetpack Compose 中创建没有 TopAppBar 的抽屉 - Android

所以我是 Jetpack compose 的新手,我试图弄清楚如何将抽屉功能添加到我视图上的按钮。

我发现的与 XML 命令式方法Navigation Drawer without Actionbar有关的问题的对应问题

很想了解相同的方法。