Я накачал вид во всплывающее окно.Это представление включает в себя TextView, где я хочу разместить текст во время выполнения.Мне нужно посчитать количество строк, которые TextView использует, чтобы настроить размер всплывающего окна.Для этой цели я использую функцию TextLine getLineCount () и рисую TextView перед подсчетом количества строк (myTextView.draw (canvas)).
Однако, когда я в первый раз вызываю PopupWindow, getLineCount () возвращает числосимволов, а не количество строк (например, 42 вместо 2). Отладочные команды предполагают, что это связано с тем, что 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 = "текст для отображения .."
В остальное время срабатывает всплывающее окно (при нажатии пользователем на значки карты) представление имеет ненулевые параметры,и затем количество строк работает нормально:
ОТЛАДКА / Просмотр (207): frame = {7, 13, 209, 79} scroll = {0, 0} ОТЛАДКА / Просмотр (207): mMeasureWidth = 202 mMeasureHeight =66 DEBUG / View (207): privateFlags = {HAS_BOUNDS} DEBUG / View (207): frame = {7, 13, 209, 79} scroll = {0, 0} mText = "текст для отображения .."
В качестве обходного пути я пытался нарисовать невидимое окно PopupWindow до рисования первого всплывающего окна, то есть пытался использовать его «дважды в первый раз».Это не помогло ... Я также попытался сделать недействительным MapView, который тоже не работал.
Может кто-нибудь подсказать, как правильно инициировать представления, чтобы я мог использовать getLineCount () так, как предполагаетсяк?
Спасибо!Vanja