0

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() を本来の方法で使用できるように、ビューを適切に開始する方法を誰かが提案できますか?

ありがとうございました!ヴァンジャ

4

1 に答える 1

0

回避策として、この男のクラスをお勧めします。

textviewに合うようにテキストフォントサイズを調整する方法

私はそれがmeasureText()を使用してうまく仕事をしていると思います。

しかし、なぜこれが機能しないのか-わかりません。かなり掘り下げる必要があります;)私の提案は、最初はテキストボックスが非常に狭く、1行に1文字しか表示されないことです(これが理由です) 2)の代わりに42を返します。

于 2010-10-26T07:47:21.680 に答える