问题标签 [jetpack-compose-accompanist]
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.
android-jetpack-compose - 在 Jetpack Compose 中使用 Accompanist Animated Navigation 快速导航会导致应用崩溃
在使用 Accompanist AnimatedNavHost 和导航动画时,如果我转到一个屏幕然后连续几次快速返回(使用系统后退按钮),应用程序就会崩溃。我怀疑这是 Accompanist 中的一个错误(我已经在 Github repo 上提交了一个问题),但我认为它也值得在这里发布,以防其他人看到这个和/或有解决方法。
该应用程序因以下堆栈跟踪而崩溃:
我的导航代码如下:
重现
在两个屏幕之间快速导航,在动画完成之前使用系统后退按钮返回到第一个屏幕。就我而言,我正在触发动画并在动画完成之前使用系统后退按钮。这通常需要几次尝试才能崩溃。有时只有两个,有时五个或十个。
0.21.0-beta 版伴奏动画导航
android - Accompanist systemUiController darkIcons doesn't work on Android 11
I'm using the Accompanist systemUiController library and I'm setting
darkIcons=false
while in Light Theme but the effect doesn't apply on devices with android 11. It seems to work on devices with android 10 for example.
This is the code with which I'm trying to set the colors.
where statusBarColor
is a darker color which represents the reason I want white foreground/icons
While in Dark Theme it works to set darkIcons
to both true
and false
and the effect applies accordingly
This is the status bar on LightTheme with darkIcons=false
and darkIcons=true
This is the status bar on DarkTheme with darkIcons=false
This is the status bar on DarkTheme with darkIcons=true
For reference this is my whole Theme.kt
SetBarsTheme()
is where I'm trying to set the status bar colors depending on the lifecycle event so that the colors would maintain after onPause() / onStop()
. I also tried to set the colors outside of this logic and the bug still persists.
android - 伴奏 FlowRow :是否可以自动向下滚动以显示元素?
在我的 Jetpack Compose 项目中,我的一个组件使用了FlowRow
来自Accompanist的组件。但我不知道如何FlowRow
滚动到给定的“节点”。
这是我的相关代码@Composable
:
您可以在其中看到我将 的“节点”声明FlowRow
为列表:参数elements
。我也在ScrollState
局部变量中使用 a vertScrollState
。
但是,假设我想让它滚动到elements[30]
:我应该怎么做?鉴于这是默认情况下必须可见mustBeVisibleByDefaultElementIndex
的元素的索引。我的意思是,当组合发生时。但是用户当然可以稍后更改位置。
换句话说 :
- At composition :给定索引的元素可见
- 然后,当然,在任何其他组合发生之前,用户可以使用滚动条滚动它。
android - Jetpack Compose Pager - 延迟页面加载
我有一个HorizontalPager
( com.google.accompanist:accompanist-pager:0.20.0
) 有两页,每一页都包含一个项目列表。每个项目都有一个在第一次合成时触发的进入动画。在编写寻呼机时,两个页面也是同时编写的,但奇怪的是,并非总是如此。
由于其他原因,我存储PagerState
在我的视图模型中,因此保留了最后一个活动选项卡。如果是第一页,则两个页面同时组合,导致帧时间图出现峰值。但是,如果它是第二页,则只有它与其列表组成,并且第一页在我朝其方向滚动的那一刻被填充。这很方便!
为了更好地理解,这里有一些伪代码。
如果我导航到此屏幕,滚动到第二个选项卡,然后导航到别处并再次返回,则第二个选项卡将在没有性能问题的情况下组合,而第一个选项卡将在我开始滚动到它之前不会组合,即懒惰。它实际上看起来像一个错误,但在我的情况下我想要这种行为。
所以问题是我们如何强制寻呼机的页面懒惰地组成呢?
如果我们收集它可能是可能的PagerState.targetPage
,但它需要非平凡的逻辑,我想避免它,因为这种行为已经存在。
更新 - 一些迷幻的东西
该问题可以通过添加任意数量的itemSpacing
.
如何?为什么?我们永远不会知道。但是这样做会在同级库中引入另一个奇怪的问题,指标行为不正确,正如我在这个 gifcom.google.accompanist:accompanist-pager-indicators:0.20.0
上演示的那样。再次,注意指标。
尽管我很喜欢 Compose,但到处都是那些小虫子让我发疯。
android - Jetpack compose:嵌套寻呼机
如何在嵌套视图中组合 2 个寻呼机。
例如:一个 Verticalpager 中的 Horizontalpager。
或者有没有更好的方法来解决这个问题:
我有一个verticalpager,每个页面都可以滑动(向左)以打开具有滑入/滑出效果的新页面?
android - 撰写水平寻呼机总是填充最大尺寸,verticalAligment 不起作用
我正在使用Google 的 Accompanist Horizontal Pager,我需要寻呼机来包装内容大小。由于某种原因,它填充了最大尺寸。目前它是约束布局的孩子,但是我尝试将它放在另一个具有Modifier.weight(1f)
相同结果的列中。垂直对齐也不起作用,孩子居中。
截图;绿色 - 寻呼机,红色 - 是孩子。
撰写版本:1.0.5;寻呼机版本:0.21.3-beta
android - viewpager jetpack compose 中的垂直滚动不起作用
在使用伴奏的水平视图寻呼机中面临垂直滚动的问题。无法在 HorizontalViewPager 内垂直滚动列。因此,请查看代码并更正如何修复它或任何其他解决方案。如果可能,将不胜感激。
使用 Column 时无法垂直滚动。如果尝试使用 LazyColumn 会产生错误。这里是伴奏者 ViewPager 链接伴奏者 库
android - 有什么办法可以让伴奏库的两个水平寻呼机同步工作?
我想要实现的是,如果有两个水平寻呼机,那么在向左滑动顶部一个然后底部水平寻呼机应该向右滑动,反之亦然,尝试使用 pagerState scrollBy 方法但没有获得所需的输出
android - Jetpack Compose 中 HorizontalPager 中的滚动阻力
我已经在我的项目中实现HorizontalPager
了。TabRow
我的 HorizontalPager 使用来自PagerDefaults.flingBehavior(state)
. 我没有覆盖投掷行为。
这是代码的样子:
我必须非常努力地滚动才能在寻呼机项目之间滚动。我希望寻呼机在轻微滚动时滚动到下一个/上一个屏幕。
在调试和记录之后,我发现由于某种原因,initialVelocity
inperformFling
方法一直都是-0.0
(左右投掷相同)。
android - (撰写 UI)- 键盘 (IME) 与应用程序的内容重叠
几天前,我遇到了一个问题,我的一部分视图被键盘重叠。
假设我们有 3 个不同的对话框(可以是任何内容),如下所示:
当我想写任何东西时,最后一个对话框被键盘覆盖:
而且没有办法看到用户写了什么。这是我的代码:
这个问题似乎与我的相似,但答案修改了我想避免的视图内容:
到目前为止,我想出了如何解决这个问题,并分享我的方法作为答案