问题标签 [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 回答
455 浏览

android - 如何使 Jetpack compose 元素出现在 android 的键盘顶部?

在 XML 中让按钮粘在屏幕底部并在弹出时粘在键盘上非常简单,我们可以做这样的事情

我们将如何在 Jetpack compose 中复制它?

0 投票
2 回答
587 浏览

android - Jetpack compose - 更改底部栏切口颜色

如何更改底部栏的切口颜色?

我知道它从 中获取颜色MaterialTheme.colors.background,但我不想更改所有组件的背景颜色,只更改底栏。(图片中剪下的白色。)

在此处输入图像描述

我尝试了不同的方法,例如为底部栏设置一个新主题,但这不起作用。

0 投票
2 回答
1996 浏览

android - Jetpack Compose - 导航 - 脚手架 + NavHost 不工作

所以我正在尝试使用 Jetpack Compose 创建一个应用程序。我有一个屏幕功能,其中包含一个没有顶部应用栏的脚手架、一个用于导航的底部栏和一个设置在底部栏中的浮动操作按钮。这一切都很好。

但是,当我将 NavHost 添加到脚手架的内容时,整个事情就停止了工作。如果没有 NavHost,这一切都可以正常工作,而只是内容是屏幕的可组合功能。我尝试过为 NavHost 使用不同数量的可组合位置,不同的填充值都无济于事。

没有 NavHost 的外观(即我希望它的外观)

代码:

NavHost 的外观。该图像中的框是无法绘制的 BottomBar,因为可以单击每个框,这会将我带到 BottomBar、BottomNavigationItem、Icon 等。任何人都知道这里发生了什么,我能做些什么来解决它?谢谢

编辑:我想到的一件事是将 fun BottomBar -> BottomNavigationItem 中的“选定”布尔值更改为始终为真,只是为了查看空值是否影响它,但这并没有改变任何东西。

0 投票
1 回答
366 浏览

android - Jetpack 组合底部应用栏深色

我正在尝试将导航栏设置为与底部应用栏相同的颜色,但我不明白应用栏的颜色来自深色主题。看起来应该是MaterialTheme.colors.primarySurface,但我使用systemUiController.setNavigationBarColor(color = MaterialTheme.colors.primarySurface)的颜色与应用栏不一样。在这里,您会看到一个将两者都设置为 的示例MaterialTheme.colors.primarySurface

在此处输入图像描述

它适用于浅色主题,但不适用于深色主题。

那么深色主题应用栏颜色是从哪里来的呢?

0 投票
1 回答
456 浏览

android-jetpack-compose - Jetpack Compose - 阻止重点元素窃取背压?

我有一些元素集中在底部工作表中。我想在按下系统后退按钮时折叠底部工作表,这很容易:

问题是,如果一个元素集中在底部工作表中,则只有在按下后退按钮两次后才会触发后退处理程序的逻辑:一次是从元素(轮廓文本字段)中移除焦点,再一次是触发折叠。

我已经尝试在LocalFocusManager.current按下返回时使用组合清除焦点,但是在元素已经失去焦点之前不会触发返回逻辑。

我可以清楚地关注折叠,所以我想真正的问题是当工作表 1)可见并且 2)有一个子元素聚焦时,必须按下两次。

有没有办法阻止重点元素取代我的背后逻辑?

0 投票
5 回答
1393 浏览

android - 使用 Compose Navigation 导航时 TopAppBar 闪烁

我有 2 个屏幕,它们都有自己的ScaffoldTopAppBar. 当我使用 Jetpack Navigation Compose 库在它们之间导航时,应用栏会闪烁。为什么会发生这种情况,我该如何摆脱这种情况?

在此处输入图像描述

代码:

导航:

待办事项列表Scaffold屏幕TopAppBar

Scaffold添加/编辑屏幕TopAppBar

0 投票
2 回答
399 浏览

android - 当列表项在撰写中可拖动时,如何通过拖动打开导航抽屉?

所以我正在使用 Jetpack Compose 重写应用程序的 UI。我已经使用常规的 Scaffold 函数实现了一个导航抽屉。开箱即用,这提供了两种打开抽屉的方法:按导航图标或向屏幕末尾拖动。有问题的屏幕是列表项的 LazyColumn。

我稍后在这些列表项上实现了 SwipeToDismiss 模式。滑动关闭工作正常,但不再可能拖动任何地方打开导航抽屉。

在旧的基于视图的系统中,导航抽屉将保留一个小宽度,您可以在其中始终拖动以打开抽屉 - 无论子项是否支持拖动。我不确定如何使用 Compose 实现相同的目标。似乎应该是导航抽屉的工作来处理这个 - 而不是它里面的屏幕。

带有导航抽屉的屏幕:

并滑动以关闭项目(显示在 LazyColumn 内)

0 投票
1 回答
134 浏览

android - 如何在框内渲染 Activity/Fragment Activity [Jetpack Compose]

我正在将我的 Android 移动应用程序转换为使用 Jetpack Compose。目前,我将活动作为 Intent 开始并且它可以工作,但是如果我这样做,我会失去导航:

将这个 ExternalClass (java) 渲染到 Jetpack Compose 中的替代方法是什么?

0 投票
2 回答
1379 浏览

android - Jetpack Compose Navigation:PopUpTo Screen 来自具有相同路线但参数除外的屏幕

导航撰写版2.4.0-alpha06

我有一个导航抽屉使用Scaffold,部分项目是由 ViewModel 动态生成的。

示例项目是

  • 一种
  • C ...
  • 设置

其中 A、B、C、... 都共享同一个Screen被调用Category的 ,只是传递了不同的参数(例如 Category/A、Category/B)。

在我的里面Scaffold

这段代码运行得很好,除了当我访问主屏幕时,我想清除所有 backstack 到 Home 不包括在内。

我试过添加NavOptionsBuilder

但是,这不起作用,因为currentScreen.name会给出类似的东西,Category/{title}并且 popUpTo 只会尝试从后台堆栈中查找完全匹配的内容,因此它不会弹出任何内容。

有没有真正的撰写导航方法来解决这个问题?或者我应该将最后一个“标题”保存在 ViewModel 中的某个地方并使用它?

来自 Google 的本教程具有类似的结构,但它只是堆叠屏幕,因此从屏幕 A -> B -> A 返回并单击返回只会返回 B -> A,这对我来说不是理想的行为。

先感谢您。

0 投票
3 回答
228 浏览

android - 为什么在 Jetpack Compose 的下一页中显示 BottomNavigation?

我想在 Jetpack Compose 中Scaffold进行导航。BottomNavigation它们位于MainPage 中。但是当我单击MainPage中的内容并导航到DetailPage时,它​​们BottomNavigation也存在,如图所示:

这是带有底部导航的 MainPage

这是从 MainPage 导航的 DetailPage

如何隐藏BottomNavigationDetailPage ?