View を PopupWindow に膨らませました。このビューには、実行時にテキストを配置する TextView が含まれています。ポップアップのサイズを調整するために、TextView が使用する行数をカウントする必要があります。この目的のために、TextView の getLineCount() を使用して、行数をカウントする前に TextView を描画します ( myTextView.draw(canvas) )。
ただし、PopupWindow を初めて呼び出すと、getLineCount() は行数ではなく文字数を返します (たとえば、2 ではなく 42)。デバッグ プリットは、TextView が適切に開始されていないことが原因であることを示唆しています。
DEBUG/View(207): frame={0, 0, 0, 0} scroll={0, 0} DEBUG/View(207): mMeasureWidth=0 mMeasureHeight=0 DEBUG/View(207): privateFlags={} DEBUG /View(207): frame={0, 0, 0, 0} scroll={0, 0} mText="表示するテキスト.."
ポップアップがトリガーされる残りの時間 (ユーザーがマップ アイコンを押すことによって) では、ビューにはゼロ以外のパラメーターがあり、行カウントは正常に機能します。
DEBUG/View(207): frame={7, 13, 209, 79} scroll={0, 0} DEBUG/View(207): mMeasureWidth=202 mMeasureHeight=66 DEBUG/View(207): privateFlags={HAS_BOUNDS} DEBUG/View(207): frame={7, 13, 209, 79} scroll={0, 0} mText="表示するテキスト.."
回避策として、最初のポップアップを描画する前に非表示の PopupWindow を描画しようとしました。つまり、「初めて 2 回」使用しようとしました。これは役に立ちませんでした..また、機能しなかったMapViewを無効にしようとしました。
getLineCount() を本来の方法で使用できるように、ビューを適切に開始する方法を誰かが提案できますか?
ありがとうございました!ヴァンジャ