Android layout 在显示任何peek卡之前获取peek卡的高度?

Android layout 在显示任何peek卡之前获取peek卡的高度?,android-layout,wear-os,watch-face-api,Android Layout,Wear Os,Watch Face Api,根据API文件,当设置peek_MODE_SHORT时,所有peek卡仅为“单线高”。因此,这意味着每一张peek卡都会占用特定设备的屏幕空间 我计划将最重要的信息放在保证不会被卡片覆盖的区域(以及可以被卡片覆盖的空间中的非关键信息),从而在我的手表表面上利用这一点 问题是我不知道如何确定peek卡要占用多少空间,这太晚了,因为我希望布局的其余部分考虑到peek卡要去哪里 TL;DR-在调用onPeekCardPosition()之前,有没有关于如何获取peek卡位置的想法 编辑: 我之所以需要

根据API文件,当设置peek_MODE_SHORT时,所有peek卡仅为“单线高”。因此,这意味着每一张peek卡都会占用特定设备的屏幕空间

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

问题是我不知道如何确定peek卡要占用多少空间,这太晚了,因为我希望布局的其余部分考虑到peek卡要去哪里

TL;DR-在调用onPeekCardPosition()之前,有没有关于如何获取peek卡位置的想法

编辑: 我之所以需要peek卡的高度,是因为我希望确保在显示peek卡时完全覆盖某些内容。就像下面的#1:
不,我们没有提供任何API来确定peek卡的高度。您应该使用
onPeekCardPositionUpdate()
并在收到通知时调整您的表面

我知道你总是想把你的内容放在peek卡的上面,然后就完事了。然而,这不是一个好主意-你将浪费屏幕上的不动产。用户可能会决定禁用窥视(有可用的选项),之后屏幕底部会留下空白。或者用户可能在流中没有卡,在这种情况下,您将在底部留下空白

提供此回调是有原因的,因此您可以在卡偷看和不偷看时动态调整手表表面,并允许用户在这两种情况下获得最佳体验

编辑:


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

谢谢您提供的信息。事实上,这并不是说我只想把我的内容放在peek卡上面,然后就可以完成了。我有4条信息要显示。其中3个很关键,1个很好。但是,当显示peek卡时,没有足够的空间显示所有4个。因此,我没有试图将所有信息塞进一行,而是确保最不重要的信息静态地放在底部。这确保了当显示peek卡时,它会被完全覆盖,这比只切断一部分要干净得多。我想在第一次显示peek卡之前,我不能显示最后一行。然后,当调用onPeekCardPositionUpdate()时,我可以保存该值,然后调整间距。这并不能带来很好的首次跑步体验,但它具有一致性的巨大附加值。例如,如果用户想知道现在是几点,他们只需看手腕的中心(而不是有时看中间,其他人则因为布局改变而看别处)。谢谢@gruszczy的建议!事实上,我今天就这么做了:)然而,这仍然存在一个潜在的问题,即peek卡不会完全覆盖可选信息。如果可选信息只是因为一张窥视卡部分遮挡而“消失”,这在美学上是令人不快的。它没有遵循其他操作系统使用的材质设计。我在原来的帖子中添加了一张图片,以突出我所说的内容我真的不认为在事先不知道高度的情况下我有办法做到这一点。我理解。我将在我们这边提交一个bug,并讨论是否可以为此添加一些额外的API,以涵盖这种情况。同时:您不必立即消失可选信息。相反,考虑一下动画的消失(比如淡出)。这应该是更重要的(事情不只是消失,而是过渡对用户来说很清楚)。哇,@gruszczy!我对这种敏捷程度印象深刻!淡入淡出是个好主意。我会调查一下,看看是否有我可以使用的库。谢谢你的帮助。