在显示任何内容之前获取 peek 卡的高度?

Get height of peek card before any are displayed?

根据 API 文档,当设置 PEEK_MODE_SHORT 时,所有 peek 卡片都只会是 "a single line tall"。所以这意味着每张 peek 卡片都将占据特定设备的固定屏幕空间。

我计划通过将最重要的信息放在保证不会被卡片覆盖的区域(以及 space 中可能被覆盖的非关键信息)来利用我的表盘通过卡片)。

问题是在 onPeekCardPositionUpdate() 之前我不知道如何确定 space peek 卡片占用了多少,这已经太晚了,因为我想考虑布局的其余部分考虑 peek 卡片的去向。

TL;DR - 关于如何在调用 onPeekCardPosition() 之前获取卡片位置的任何想法?

编辑: 我需要 peek 卡高度的原因是因为我希望确保在显示 peek 卡时完全 覆盖某些内容。就像下面的#1:

不,我们没有提供任何 API 来确定 peek 卡片的高度。您应该使用 onPeekCardPositionUpdate() 并在收到通知时调整您的表盘。

我了解到您希望始终将您的内容放在 peek 卡片上方并完成它。然而,这不是一个好主意——您将浪费屏幕上可用的空间。用户可能会决定禁用窥视(有可用的选项),之后屏幕底部将留下空的 space。或者用户可能在流中没有卡片,在这种情况下,您将在底部留下空的 space。

提供此回调是有原因的,因此您可以在卡片正在查看和未查看时动态调整表盘,让用户在任何情况下都能获得最佳体验。

编辑:

在您的具体情况下,我建议您这样做:在您的绘图代码中检查 peek 卡的当前边界 (getPeekCardPosition())。如果它们是 (0-0, 0-0),这意味着没有 peek 卡片,您可以绘制可选内容。如果边界不同,则不要绘制它。应该就这么简单。你还想在卡片边界的回调来的时候触发重绘