1

API ドキュメントによると、PEEK_MODE_SHORT が設定されている場合、すべてのピーク カードは「1 行の高さ」になります。したがって、これは、すべてのピーク カードが特定のデバイスの一定の画面領域を占有することを意味します。

これを活用して、最も重要な情報をカードでカバーされないことが保証されている領域に配置します (そして、重要ではない情報をカードでカバーできるスペースに配置します)。

問題は、ピーク カードがどこに行くかを残りのレイアウトで考慮したいので、onPeekCardPositionUpdate()までピーク カードがどれだけのスペースを占めるかを判断する方法がわからないことです。

TL;DR - onPeekCardPosition() が呼び出される前にピークカードの位置を取得する方法についてのアイデアはありますか?

編集:ピークカードの高さが必要な理由は、ピークカードが表示されたときに何かが完全に覆われるようにしたいからです。以下の#1のように: 点線はピークカードがある場所です

4

1 に答える 1

3

いいえ、ピーク カードの高さを判断するための API は提供していません。onPeekCardPositionUpdate()通知を受け取ったら、ウォッチフェイスを使用して調整する必要があります。

コンテンツを常にプレビュー カードの上に配置して、それで完了させたいとのご要望を承りました。ただし、これは良い考えではありません。画面上で使用できるスペースを無駄にすることになります。ユーザーがピークを無効にすることを決定する場合があります (これには利用可能なオプションがあります)。その後、画面の下部に空のスペースが残ります。または、ユーザーがストリームにカードを持っていない可能性があります。その場合も、下部に空のスペースが残ります。

このコールバックが提供されるのには理由があります。そのため、カードが表示されているときと表示されていないときの両方でウォッチフェイスを動的に調整し、どちらの場合でもユーザーが最高のエクスペリエンスを得ることができるようにします。

編集:

特定のケースでは、これを行うことをお勧めします。描画コードで、ピーク カードの現在の境界を確認します ( getPeekCardPosition())。それらが (0-0, 0-0) の場合、これはピーク カードがなく、オプションのコンテンツを引くことができることを意味します。境界が異なる場合は、描画しないでください。それはそれと同じくらい簡単なはずです。また、カード境界に関するコールバックが来たときに再描画をトリガーする必要があります。

于 2015-03-04T18:10:13.827 に答える