1

根据 API 文档,当设置 PEEK_MODE_SHORT 时,所有窥视卡将仅“单行高”。因此,这意味着每个窥视卡都将占用特定设备的恒定屏幕空间。

我计划在我的表盘上利用这一点,将最重要的信息放在保证不会被卡片覆盖的区域(以及在空间中可以被卡片覆盖的非关键信息)。

问题是在onPeekCardPositionUpdate()之前我不知道如何确定偷看卡占用多少空间,这为时已晚,因为我希望布局的其余部分考虑偷看卡的去向。

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

编辑:我需要偷看卡高度的原因是因为我希望确保在显示偷看卡时完全覆盖某些东西。就像下面的#1: 虚线是偷看卡的位置

4

1 回答 1

3

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

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

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

编辑:

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

于 2015-03-04T18:10:13.827 回答