Активность в хосте вкладок пропадает
У меня есть хост с тремя вкладками. На первой вкладке я выполняю некоторые растровые операции на холсте (немного тяжелые). Всякий раз, когда я перехожу на вторую или третью вкладку, действие на вкладке становится пустым. У меня есть текст редактирования на вкладке 1, поэтому, когда когда-либо появляется программная клавиатура, остальные вкладки работают нормально. Я думаю, что это потому, что При всплывающей программной клавиатуре окно изменяется в размерах. Я думаю, что если мне удастся изменить размер или обновить вкладку 1, я смогу правильно видеть содержимое в остальных вкладках. Есть ли способ, которым я могу изменить размер текущее окно или обновите окно. Я попытался установить ширину и высоту, используя LayoutParams, но на самом деле он не изменяет размеры. Кроме того, вкладки начинают работать правильно, когда я меняю ориентацию, вероятно, потому что весь хост вкладок воссоздается. Есть ли кто-нибудь, кто сталкивался с подобной проблемой?
Любая помощь будет оценена.
2 ответа
Вы можете автоматически обновить содержимое вкладки на вкладке выберите с помощью FLAG_ACTIVITY_CLEAR_TOP
вариант. Поэтому, когда вы создаете вкладки, просто добавьте их в спецификацию вкладок.
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("myTabName")
.setContent(new Intent(this, MyTabContent.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));
Если вы используете холст внутри действия внутри вкладки, убедитесь, что ваши размеры всегда верны при воссоздании представления. Сначала запишите значения в журнал и посмотрите, где и когда ширина и высота приобретают новые значения. Наиболее распространенные ошибки: onDraw и onMeasure